
Я работаю на свежей установке OpenSUSE 13.2 tumbleweed, которая поставляется с python2.7 и python3.4. У меня постоянно возникают проблемы с запуском любых библиотек на основе python, и возникает следующая ошибка ImportError: No module named site
. Все ответы на эту проблему связаны с установкой переменных окружения PYTHONPATH и/или PYTHONHOME на какой-либо путь, но я перепробовал все комбинации путей, которые только мог придумать, и ничего не работает. Есть идеи?
Библиотеки, с которыми у меня возникли проблемы, — youtube-dl и flexget.
решение1
Это работа вашего дистрибутива — обеспечить правильное управление библиотеками, даже для таких вещей, как Python, которые, кажется, изо всех сил стараются все усложнить.
Запускайте программы python 2 с помощью ,
#!/usr/bin/python2
а программы python 3 — с помощью#!/usr/bin/python3
. Или вызывая их какpython2 script
илиpython3 script
. Не используйте#!/usr/bin/env python
, это был идиотски плохой совет еще до того, как появились два питона.Используйте упакованные версии библиотек Python дистрибутива, когда это возможно. Даже если вам придется ждать целую неделю, пока будет упакована версия 1.2.0.0.0.0.3, пока вы застряли на древней 1.2.0.0.0.0.2. Или месяцы. Крайне редко бывает так, что обновленная библиотека стоит риска испортить вашу систему. Обойтись без нее или «использовать другую библиотеку» почти всегда будет лучшим ответом, чем «испортить мою систему, вручную установив эту библиотеку»
Если вам необходимо вручную установить библиотеку,адаптируйте инструкции к вашей системе. Инструкции могут (в основном) работать на собственной системе разработчика, но они будут делать огромное количество предположений о том, как все настроено, и большинство из них, вероятно, будут неверны для вашей системы. Это означает тщательное прочтение соответствующей документации и примечаний дистрибутива и понимание среды python вашей системы и того, как она работает.
Неадаптация инструкций к вашей системе может испортить вашу среду python, даже если ваш дистрибутив сделал все правильно, насколько это касается управления библиотеками python. Это печально распространенный результат для python (и ruby) способами, которые не распространены для любого другого языка программирования или скриптинга. Существует МНОГО плохих советов, которые по сути говорят вам игнорировать дистрибутив или операционную систему и относиться к ним как к препятствию, которое нужно обойти (а не как к инструменту, который нужно использовать и с которым нужно работать) в мире python.