Venv PyCharm полагается на физическую установку Python? - PullRequest
0 голосов
/ 24 мая 2019

Я доверился PyCharm, который позволил ему создать venv, а затем отправил проект кода с папкой venv. Внутри моего кода при вызове отдельного скрипта я использую python venv uder venv/Scripts/.

К моему удивлению, он ломается при работе на другой машине, где python venv фактически указывает на мою локальную установку Python на C:\Python\Python37. Это превосходит цель создания venv!

Что я сделал не так? Моя структура проекта похожа на

  • код / ​​*. Py
  • venv

И это то, что я отправил на другую машину.

Ответы [ 2 ]

2 голосов
/ 24 мая 2019

Да, venv создает ссылку на ваш оригинальный питон. Для создания «требований к venv» рекомендуется создать файл требований:
pip freeze > requirements.txt
Затем просто добавьте этот файл в папку вашего проекта

P.S
Есть лучшая альтернатива под названием Conda . Вы можете предоставить версию Python в conda envs.

1 голос
/ 26 мая 2019

Благодаря ответу @ AndreyG. Кроме того, несколько других подобных вопросов были полезны, как:

Копирование полного virtualenv на другой компьютер

Перенос Python virtualenv в другую систему

Особенно после прочтения этого урока: https://realpython.com/python-virtual-environments-a-primer/,

Я осознал свое заблуждение о venv, что было своего рода из-за моего предыдущего опыта по отгрузке среди компьютеров Mac, где обычно устанавливался Python.

Теперь в сочетании с подходом «замораживание пипсов» к доставке site-packages я также отправляю установщик Python для Windows и автоматизирую установку, чтобы убедиться, что символические ссылки venv указывают на точно такую ​​же установку Python на всех машинах. Справка:

https://docs.python.org/3/using/windows.html

Код автоматизации:

python.<version>-<arch>.exe /quiet InstallAllUser=-1 PrependPath=1 TargetDir="C:\Python\Python<version>"
...