我希望从源代码编译 Python 2.7.3。操作系统为OpenSUSE 11.4 x86_64,已经提供了Python 2.7。我想为最新的安全补丁使用 2.7.3,但它是一个共享系统,所以我无法修改系统 Python 解释器。
我使用 ./configure --prefix=/opt/python --enable-shared
进行编译。没有配置错误,所以我 make
。再次没有错误。我做了一个 make install
(我认为我不需要 make altinstall
,因为 /opt/python
中的这个安装前缀不在尚未使用)。
当我尝试运行新的二进制文件 /opt/python/bin/python
时,Python 宣布其版本为 2.7,而不是 2.7.3。我发现纠正此问题的唯一方法是移动系统的 /usr/lib64/libpython2.7.so.1.0
,并将其符号链接(symbolic link)到 /opt/python/lib/python/libpython2.7.so.1.0
。这有效,Python 宣布它是 2.7.3,但这会破坏系统 Python。
无论如何我可以让两者共存,例如通过让 /opt/python
使用它自己的 libpython?除了在运行时提供 LD_LIBRARY_PATH 之外。有编译时解决方案吗?谢谢。
最佳答案
为避免每次启动 Python 时都必须使用 LD_LIBRARY_PATH
指定运行时库路径,您可以在构建时使用 -rpath
链接器选项指定它:
./configure --enable-shared --prefix=/opt/python \
LDFLAGS=-Wl,-rpath=/opt/python/lib
关于python - 在已经安装了 Python 2.7 的系统上从源代码编译 Python 2.7.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12553057/