Я установил модуль, компилирующий исходный код. Я сделал это с помощью python3.4, и модуль находится в /usr/local/lib/python3.4/site-packages/. Если я попытаюсь запустить его, python3.4 не сможет его найти. Если я добавлю каталог в PYTHONPATH, все будет работать.установить различные системные пути для python 3.2 и python 2.7 глобально
Но у меня есть две версии python (я запускаю ubuntu). Python2.7 и python3.4. После того, как я добавить каталог в PYTHONPATH становится:
/home/myuser/development/ros/devel/lib/python2.7/dist-packages:/opt/ros/indigo/lib/python2.7/dist-packages:/home/myuser/Qt/5.5/gcc_64/lib/cmake/lib/python2.7/dist-packages:/usr/local/lib/python3.4/site-packages/:/home/myuser/development/lcm
так что есть каталоги, связанные с python2.7 и python3.4 в одной и той же переменной окружения, которая является абсолютно небезопасны и ума, я думаю. Его склонность к ошибкам.
Я оглядывался и обнаружил, что люди рекомендуют использовать virtualenv. Тем не менее, это не меняет PYTHONPATH.
Каков стандартный способ справиться с этим? некоторые мысли:
- Я бы ожидать, что python3.4 будет автоматически искать модули в /usr/local/lib/python3.4/site-packages/ и что не происходит. Может быть, у моей установки python3.4 есть что-то?
- Даже если мне удастся использовать этот модуль для python3.4 без использования PYTHONPATH, у меня все еще есть информация в PYTHONPATH, относящаяся к python2.7, даже когда я использую python3.4, поэтому я, вероятно, тоже должен удалить это.
Итак, как установить путь для python для поиска модулей по всему миру (не используя sys.path() для каждой программы), но с каждой версией python, используя собственный путь?
EDIT: Из комментария я понял, что могу просто добавить символическую ссылку в каталог, где находятся мои модули. Но я обнаружил, что ни на python 2.7, ни на 3.4 нет сайтов-пакетов на своем пути, что неправильно. Это проблема ubuntu? Я где-то читал, что сайты-пакеты должны использоваться для самокомпилированных модулей и dist-пакетов для модулей, установленных через apt-get.
EDIT 2: python #. #/Site-packages зарезервирован для пользовательских пакетов. По крайней мере, в ubuntu python по умолчанию не будет выглядеть. Таким образом, поведение, которое у меня было, было правильным, ничего не случилось с установкой.
Возможно, связанные с: http://stackoverflow.com/q/34632870/244297 –
в качестве лучшей альтернативы предлагается использовать виртуальную среду вместо того, чтобы пытаться установить pa ths глобально https://packaging.python.org/en/latest/installing.html#creating-virtual-environments –