【问题标题】:Can I use pipenv to create two virtual environments, each with a different python version (i.e. 3.7 and 3.6)?我可以使用 pipenv 创建两个虚拟环境,每个环境都有不同的 python 版本(即 3.7 和 3.6)吗?
【发布时间】:2020-11-01 08:17:35
【问题描述】:

我想要两个虚拟环境,一个是 python 3.6 版本,另一个是 python 3.7 版本。这将允许我在安装模块和包时完成我的项目而不会产生冲突的需求。我相信 TensorFlow 不能在 3.7 中完成。

我已经尝试使用带有“pipenv install Django==3.0.2”的 pipenv shell,github 建议,

一些网站说要使用 Python、pipenv shell、DJango 组合,但这似乎只创建了一个版本的 python3 虚拟环境,并且之前存在的 virutalenv 将被删除。我应该创建一个新的 Pipfile 来防止这种情况,还是 Pipfiles 不是为此配置而设计的。

  1. Github 讨论链接:

https://github.com/pypa/pipenv/issues/1071

setup environments
pipenv --name 35 --python 3.5 install 
pipenv --name 36 --python 3.6 install  
# run commands 
pipenv --name 35 run python

我尝试跟进这些建议的编码程序,但出现 ModuleNotFoundError: No module named 'apt_pkg'。

  1. 最后我考虑了 pyenv,但这似乎是为 mac 用户量身定制的。我有一台 Windows 10 计算机,所以我不确定这是否可行。我用“$pip install pyenv-win”
$ pip install pyenv-win
Defaulting to user installation because normal site-packages is not writeable
Collecting pyenv-win
  Using cached pyenv_win-1.2.4-py3-none-any.whl (25 kB)
Installing collected packages: pyenv-win
Successfully installed pyenv-win-1.2.4

但我无法用它创建任何虚拟环境:

$ pyenv-win versions
ModuleNotFoundError: No module named 'apt_pkg'

注意:第 3 部分遵循这些准则

感谢任何帮助。我真的很想让这个工作。

【问题讨论】:

  • 你试过使用virtualenv 吗? Here 你可以找到关于创建虚拟环境的所有其他选项的很好的解释。
  • 我能够做到,而且成功了。谢谢布拉德!

标签: python-3.x windows-10 virtualenv pyenv


【解决方案1】:

通过 pip 安装 pyenv-win 后,不要忘记为您的用户设置默认环境变量(请参阅https://github.com/pyenv-win/pyenv-win 中的安装文档):

[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
[System.Environment]::SetEnvironmentVariable('path', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"User")

另外,我认为在重新启动终端后,您只需键入 pyenv 即可调用 pyenv-win。

【讨论】:

    【解决方案2】:

    要使用 pyenv 创建虚拟环境,您需要先安装版本,然后在本地为您的项目设置它或使用您设置的全局版本。

    要安装你需要执行的python版本:

    pyenv install 3.8.2
    pyenv local 3.8.2
    

    但是,如果您打算将 pyenv 与 pipenv 结合使用,我建议您执行以下操作:

    pipenv install --python 3.8.2
    

    如果你有 pyenv install pipenv 将执行以下操作:

    1. 如果 3.8.2 是您当前安装的版本,它将使用它
    2. 如果没有,它会使用 pyenv 来安装它并为这个虚拟环境设置它

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 2019-06-13
      • 1970-01-01
      • 2021-04-21
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多