我想在openSUSE 42.2上從源代碼安裝新的Python(3.6,幾周後發佈)。一切蟒蛇3.6安裝和lib64
./configure --prefix /home/paul/2017 --enable-optimizations
make
make install
似乎工作得很好,但是當我打電話閃亮的新解釋我得到這個錯誤:
Python 3.6.0 (default, Jan 9 2017, 22:01:27)
[GCC 4.8.5] on linux
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
File "/home/paul/.pythonrc", line 7, in <module>
import readline
ModuleNotFoundError: No module named 'readline'
現在,該模塊是存在的,它是在$ PREFIX安裝/ lib64的/ python3.6/LIB-dynload/readline.cpython-36m-x86_64-linux-gnu.so。 只有解釋器不在那裏(它完全忽略lib64,我用-vv檢查過)。
更新:爲了清楚起見,這不僅影響readline,而且還影響lib64下的所有內容,尤其是lib-dynload下的模塊。
這似乎是一個已知問題,請參閱the Python bugtracker。這是一個相當長的交易所結束於
Is there agreement on what needs doing here? I'd like to see this into 3.5 before it reaches its 10th birthday :)
這讓我有點困惑。這應該是解決? 我不記得曾經遇到過這個問題,所以我不知道它是否是3.6迴歸。
顯然,任何修補程序將是最受歡迎的。
更新:暫時我可以通過將lib64下的所有東西符號鏈接到lib來解決這個問題。顯然,這不是一個理想的解決方案;至少它擊敗了引入lib64(能夠並排擁有32位和64位版本)的目的。 我更喜歡配置文件中的東西。
'--enable_shared'無法識別和'--enable-shared'沒有解決任何(對於Python-3.6.4,在'openSUSE的42.2') 。實際上,沒有一個'python3.6/lib-dynload /'模塊是可導入的。 – ederag