Message74137
If you are fortunate enough to have all your third-party libraries in
a single quasi-standard location, say, /usr/local/lib, you will
probably have never encountered this problem, but setting environment
variables like LDFLAGS don't get translated into the relevant args for
the distutils build_ext command. The evidence for this is this output
at the end of the make process:
Failed to find the necessary bits to build these modules:
_hashlib _sqlite3 _ssl
bsddb185 linuxaudiodev ossaudiodev
To find the necessary bits, look in setup.py in detect_modules() for
the module's name.
Failed to build these modules:
_curses _curses_panel _tkinter
gdbm readline
Here's the specific failure for readline:
>>> import readline_failed
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: ld.so.1: python: fatal: libreadline.so.4: open failed: No
such file or directory
yet if you poke around in my config.status file you'll see that I set
the relevant -L and -R flags:
s,@LDFLAGS@,|#_!!_#|-L/opt/app/nonc++/ncurses-5.6/lib
-R/opt/app/nonc++/ncurses-5.6/lib -L/opt/app/nonc++/gdbm-1.8/lib
-R/opt/app/nonc++/gdbm-1.8/lib -L/opt/app/nonc++/readline-4.3/lib
-R/opt/app/nonc++/readline-4.3/lib -L/opt/app/nonc++/tcl-8.4/lib
-R/opt/app/nonc++/tcl-8.4/lib -L/opt/app/nonc++/BerkleyDB-4.3/lib
-R/opt/app/nonc++/BerkleyDB-4.3/lib,g
The workaround is to run the build_ext command separately:
./python ../setup.py build_ext --library-dirs=... --rpath=...
It's not hard to work around this problem, but it's tedious to build
the command line args from the massive list of directories I have to
educate distutils about. |
|
Date |
User |
Action |
Args |
2008-10-01 16:43:53 | skip.montanaro | set | recipients:
+ skip.montanaro |
2008-10-01 16:43:53 | skip.montanaro | set | messageid: <1222879433.22.0.765704464081.issue4010@psf.upfronthosting.co.za> |
2008-10-01 16:43:52 | skip.montanaro | link | issue4010 messages |
2008-10-01 16:43:51 | skip.montanaro | create | |
|