Вопрос

У меня проблема с virtualenv.Я использую его регулярно, использую на своей машине разработки и на нескольких серверах.Но на последнем сервере, который я пытался использовать, возникла проблема.

Я создал virtualenv с аргументом --no-site-packages, а затем установил несколько модулей Python внутри virtualenv.Я могу подтвердить, что модули расположены внутри пакетов сайта virtualenvs, и все вроде бы в порядке.

Но когда я пытаюсь сделать:source virtualenv/bin/activate а затем импортируйте один из модулей python import modulename я получаю ошибку импорта, в которой говорится, что модуль не существует.Как это происходит?Кажется, что он никогда не активируется, хотя и говорит, что это так.

Кто-нибудь знает, как это исправить?

Это было полезно?

Решение

Есть ли на этой машине активный псевдоним bash для «python», случайно?Это будет иметь приоритет над изменениями PATH, сделанными при активации, и может привести к использованию неправильного двоичного файла Python.

Попробуйте запустить virtualenv/bin/python напрямую (активировать не нужно) и посмотрите, сможете ли вы импортировать свой модуль.

Если это решит проблему, вам просто нужно избавиться от псевдонима Python bash.

Другие советы

После активации виртуальной среды попробуйте:

$ python
>>> import sys
>>> sys.executable
...

...и посмотрите, запускаете ли вы ожидаемый исполняемый файл.

Также проверьте:

>>> sys.path
[...]

IIRC, сценарий активации просто ставит вашу виртуальную среду первой на вашем пути, поэтому, когда вы вводите «python», он сначала находит ту, которая находится в вашей виртуальной среде.Если сценарий активации не удался, вы всегда можете отредактировать свой путь вручную.Также зайдите сюда и найдите «активировать»: http://pylonsbook.com/en/1.1/installing-pylons.html#setting-up-a-virtual-python-environment.Это расскажет вам, почему команда активации может завершиться неудачно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top