Я пытаюсь установить новый Python (3.6, выпущенный всего несколько недель назад) из источника на openSUSE 42.2. Всеустановка python 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/Библиотека-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' ничего не исправить (для питона-3.6.4, на 'OpenSUSE 42.2') , На самом деле ни один из модулей 'python3.6/lib-dynload /' не был импортирован. – ederag