我希望從源代碼編譯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