Compile Python 2.7.3 from source on a system with Python 2.7 already

北城余情 提交于 2020-01-01 02:53:09

问题


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, e.g. 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.


回答1:


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


来源:https://stackoverflow.com/questions/12553057/compile-python-2-7-3-from-source-on-a-system-with-python-2-7-already

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!