我希望从源代码编译Python 2.7.3。操作系统是OpenSUSE 11.4 x86_64,它已经提供了Python 2.7。我想使用2.7.3来获得最新的安全补丁,但它是一个共享系统,所以我无法修补系统Python解释器。已经在Python 2.7系统上从源代码编译Python 2.7.3
我编译使用./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之外。有没有编译时间的解决方案?谢谢。
看为虚拟ENV – Tim
你需要' - -enable-shared'?我在各种发行版上构建了一个自定义Python数十亿次(没有'--enable-shared'),然后使用这个Python所需的唯一东西就是修改'PATH'。 –
请注意,如果您不使用“--enable-shared”构建Python,则会得到一个包含整个共享库的巨大可执行文件。嵌入需要共享库,这就是Linux发行版使用“--enable-shared”构建的原因。 – user4815162342