I wish to compile Python 2.7.3 from source. The OS is OpenSUSE 11.4 x86_64, which already provides Python 2.7. I'd like to use 2.7.3 for the latest security patches, but it's a shared system so I can't tinker with the system Python interpreter.
I compile using ./configure --prefix=/opt/python --enable-shared
. No configure errors, so I make
. Again no errors. I do a make install
(I don't think I need make altinstall
, since this installation prefix in /opt/python
isn't in use yet).
When I try to run the new binary /opt/python/bin/python
, Python announces its version as 2.7, not 2.7.3. The only way I've found to correct this is to move the system's /usr/lib64/libpython2.7.so.1.0
, and symlink it to /opt/python/lib/python/libpython2.7.so.1.0
. This works and Python announces it is 2.7.3, but this breaks the system Python.
Is there anyway I can get the two to coexist, eg by getting the /opt/python
to use its own libpython? Other than supplying LD_LIBRARY_PATH at runtime. Is there a compile time solution? Thanks.
To avoid having to specify the runtime library path using LD_LIBRARY_PATH
each time Python is started, you can specify it at build time using the -rpath
linker option:
./configure --enable-shared --prefix=/opt/python \
LDFLAGS=-Wl,-rpath=/opt/python/lib
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.