Пути Python не устанавливаются во встроенной установке - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь запустить python3 на моем одноплатном компьютере EspressoBin (aarch64).Я построил дистрибутив Linux с использованием openembedded от Marvell и включил python3.

. Проблема в том, что пути поиска / переменные окружения Python не устанавливаются.

Если я пытаюсь запустить python3, я получаю:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

Current thread 0x0000007faef06000 (most recent call first):
Aborted

Если, однако, я делаю:

$ export PYTHONHOME="/usr/lib64/python3.5/"
$ export PYTHONPATH="/usr/lib64/python3.5/:/usr/lib64/python3.5/lib-dynload"
$ python3
Python 3.5.1 (default, Jan 14 2019, 23:24:54) 
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Тогда все волшебным образом работает.

Итак, вопрос в том, где / как эти вещи обычно устанавливаются?Я попытался сравнить с Ubuntu, но по некоторым причинам эти переменные окружения даже не присутствуют вообще!Я проверил документы на sys.path и там написано, что sys.path заполняется из PYTHONPATH, «плюс зависящее от установки значение по умолчанию».Так что я предполагаю, что в Ubuntu «зависящее от установки значение по умолчанию» предварительно указаны правильные пути?

Мое текущее решение - просто добавить эти две переменные окружения в /etc/environment, а также /etc/profile (длясоединения ssh), но это похоже на хакерский обходной путь, и я хочу сделать это правильно.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Путь ".../lib64/..." к python3.5 не выглядит по умолчанию,

"По умолчанию библиотеки ищутся в prefix/lib/pythonversion и exec_prefix/lib/pythonversion" source

Так что я думаю, что это может быть связано с этим, и если бы вы могли переустановить или изменить его для установки в "/lib/" вместо "/lib64/", вам не нужно было бы устанавливать эти две переменные среды.

0 голосов
/ 15 февраля 2019

Начиная с Modules / getpath.c в дереве исходников Python, это не будет плохой идеей.

О, и: кажется, что существует несоответствие версий?Python - 3,6, но вы предоставляете 3,5 модуля для него?

...