Как убедиться, что python скрипт использует виртуальную среду? - PullRequest
1 голос
/ 18 марта 2020

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

pip freeze:

enter image description here

Но при попытке импортировать модуль возникает ошибка:

Traceback (most recent call last):
  File "z:\Documents\Python\Projects\ProjectName\tempCodeRunnerFile.py", line 1, in <module>
    import paramiko
ModuleNotFoundError: No module named 'paramiko'

Как убедиться, что файл .py использует виртуальную среду?

Также, если я запустил

import sys
print(sys.path)

Результат:

'C:\\Users\\Username\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages' 

Так что он не использует виртуальную среду это правильно?

Ответы [ 3 ]

0 голосов
/ 26 марта 2020

Вы должны вызвать python, установленный в вашей среде. То есть

source myenv/bin/activate
python path/to/script.py

В Unix вы бы добавили следующий #!/usr/bin/env python вверху вашего скрипта, и это позволило бы вам запустить его без указания двоичного файла python.

source myenv/bin/activate
path/to/script.py

Возможно, это работает в Windows таким же образом или по-разному .

0 голосов
/ 26 марта 2020

Во многих случаях нет необходимости активировать виртуальную среду. Как правило, вы можете сделать что-то подобное из любой точки без активации виртуальной среды:

  • C:\path\to\venv\Scripts\python.exe -m pip somecommand
  • C:\path\to\venv\Scripts\python.exe different\path\to\script.py
  • et c.

Кроме того, вы можете указать абсолютный путь к python.exe в виде метелки в верхней части вашего Python сценария и выполнить сценарий напрямую (например, двойным щелчком) без вызова Python явно.

#!/path/to/venv/bin/python3

print("Hello world")

Ссылки :

0 голосов
/ 18 марта 2020

Самый простой способ работать с python виртуальными средами - это использовать virtualenvwrapper . Более полное руководство - здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...