Dav*_*ted 8 python shared-libraries python-2.7
我希望从源代码编译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,并将其符号链接到/opt/python/lib/python/libpython2.7.so.1.0.这是有效的,Python宣布它是2.7.3,但这打破了系统Python.
无论如何我可以让两者共存,例如通过/opt/python使用自己的libpython?除了在运行时提供LD_LIBRARY_PATH.有编译时解决方案吗?谢谢.
use*_*342 20
为避免LD_LIBRARY_PATH每次启动Python 时都必须指定运行时库路径,可以使用-rpath链接器选项在构建时指定它:
./configure --enable-shared --prefix=/opt/python \
LDFLAGS=-Wl,-rpath=/opt/python/lib
Run Code Online (Sandbox Code Playgroud)