When I try to install mailman now I'm getting:
for p in email-2.0.1 JapaneseCodecs-1.4.5 KoreanCodecs-1.0.0;
do
gunzip -c $p.tar.gz | tar xf -;
(cd $p ; PYTHONPATH=/home/mailman/pythonlib /usr/local/bin/python setup.py --quiet install --install-lib /home/mailman/pythonlib);
done
error: /usr/local/lib/python2.2/site-packages/japanese.pth: Permission denied
*** Error code 1
make: Fatal error: Command failed for target install-packages' Current working directory /usr/local/src/mailman-dev/mailman/misc *** Error code 1 make: Fatal error: Command failed for target
doinstall'
Which of course, is correct, since as a non root users I can't write to site-packages... But which is shouldn't be trying to write *to*..
[I'm Cc'ing the distutils wizard and the JapaneseCodecs author, since I believe this is a bug in one of those two systems -BAW]
"RJ" == Ron Jarrell jarrell@vt.edu writes:
RJ> When I try to install mailman now I'm getting:
RJ> for p in email-2.0.1 JapaneseCodecs-1.4.5 KoreanCodecs-1.0.0;
RJ> \ do \
RJ> gunzip -c $p.tar.gz | tar xf -; \ (cd $p ;
RJ> PYTHONPATH=/home/mailman/pythonlib /usr/local/bin/python setup.py
RJ> --quiet install --install-lib /home/mailman/pythonlib); \
RJ> done error:
RJ> /usr/local/lib/python2.2/site-packages/japanese.pth:
RJ> Permission denied *** Error code 1 make: Fatal error: Command
RJ> failed for target `install-packages' Current working directory
RJ> /usr/local/src/mailman-dev/mailman/misc *** Error code 1 make:
RJ> Fatal error: Command failed for target `doinstall'
RJ> Which of course, is correct, since as a non root users I can't
RJ> write to site-packages... But which is shouldn't be trying to
RJ> write *to*..
The problem I believe is in either distutils, or the way the Japanese codec package setup.py file is written.
"python setup.py --help install" says:
Options for 'Install' command: [...] --install-base base installation directory (instead of --prefix or -- home) --install-platbase base installation directory for platform-specific files (instead of --exec-prefix or --home) --root install everything relative to this alternate root directory --install-purelib installation directory for pure Python module distributions --install-platlib installation directory for non-pure module distributions --install-lib installation directory for all module distributions (overrides --install-purelib and --install-platlib) --install-headers installation directory for C/C++ headers --install-scripts installation directory for Python scripts --install-data installation directory for data files
So I've been using --install-lib to put the JapaneseCodecs package (as well as the email and KoreanCodecs packages) in $(PYTHONLIBDIR), which by default is /usr/local/mailman/pythonlib.
The problem comes because the japanese.pth file doesn't honor --install-lib. Trial and error shows that if I include --install-purelib $(PYTHONLIBDIR) then japanese.pth goes in the right place, e.g. /usr/local/mailman/pythonlib. So as a workaround, I've made this change.
From the JapaneseCodecs setup.py file:
-------------------- snip snip -------------------- class Install(install): def finalize_options (self): install.finalize_options(self) self.distribution.data_files = [ (self.install_purelib, ["japanese.pth"])] -------------------- snip snip --------------------
and according to the help text above, shouldn't self.install_purelib be coming from my --install-lib option? Is this a bug in distutils? Or does the setup.py file need to be fixed?
Note: Python 2.2.1 being used. -Barry
barry@zope.com (Barry A. Warsaw) writes:
|
| [I'm Cc'ing the distutils wizard and the JapaneseCodecs author, since
| I believe this is a bug in one of those two systems -BAW]
|
| >>>>> "RJ" == Ron Jarrell
participants (3)
-
barry@zope.com
-
Ron Jarrell
-
Tamito KAJIYAMA