【问题标题】:PyCharm's venv relies on a physical python installation?PyCharm 的 venv 依赖于物理 python 安装?
【发布时间】:2019-10-11 02:41:31
【问题描述】:

我信任 PyCharm 让它为我创建一个 venv,然后将代码项目与 venv 文件夹一起发送。在我的代码中,每当调用单独的脚本时,我都会使用 venv Python uder venv/Scripts/

令我惊讶的是,它在另一台机器上运行时中断,其中 venv python 实际上指向我在C:\Python\Python37 安装的本地 Python。这超出了创建 venv 的目的!

我做错了什么?我的项目结构是这样的

  • 代码/*.py
  • venv

这是我运送到另一台机器上的。

【问题讨论】:

  • Virtualenvs 不可移植!它们是开发工具,但不是分发/部署工具。

标签: python pycharm virtualenv python-venv


【解决方案1】:

是的 venv 会创建一个指向您原始 python 的链接。 创建“venv 需求”的最佳实践是创建需求文件:
pip freeze > requirements.txt
然后只需将此文件添加到您的项目文件夹中

附言
有一个更好的选择,叫做Conda。您可以在 conda envs 中提供 python 版本。

【讨论】:

    【解决方案2】:

    感谢@AndreyG 的回答。此外,许多其他类似的问题也很有帮助,例如:

    Copy complete virtualenv to another pc

    Port Python virtualenv to another system

    尤其是看完本教程后:https://realpython.com/python-virtual-environments-a-primer/,

    我意识到我对 venv 的误解,这在某种程度上是由于我之前在 Mac 机器上发布的经验,而在 Mac 机器上通常会预装 Python。

    现在结合 pip-freezing 方法来运送 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>"
    

    【讨论】:

      猜你喜欢
      • 2020-09-05
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      • 2021-08-03
      • 2017-12-11
      • 1970-01-01
      相关资源
      最近更新 更多