python - 一起使用 virtualenvwrapper 和 pyenv

标签 python virtualenv virtualenvwrapper

$ pyenv virtualenv 3.8.0 tf12 创建一个位于 ~/.pyenv/versions/3.8.0/envs/tf12 的 virtualenv,其中包含我们安装到其中的包使用 pip 安装。如果我们创建一个新的项目目录,如 mkdir myfolder && cd myfolder && pyenv local tf12,该项目目录将使用 tf12 环境包含的相同内核和包,因为我们使用了 pyenv local 命令。

但是我们也有 virtualenvs 和使用 mkproject mynewenv 创建的目录,位于 ~/.ve~/workspace 之类的地方。工作空间是我们放置笔记本、代码和脚本.pynb.py.r等的地方,对应的virtualenv使用全局python版本在执行 mkproject mynewenv 时处于事件状态。

这些使用 mkproject mynewenv 创建的 virtualenvs 与使用 pyenv virtualenv 创建的 virtualenvs 是分开的。

我得出的结论是,我们不能将它们一起用于进一步的可能性。它们是独立使用的。如果我错了,请纠正我。

最佳答案

你应该安装 pyenv-virtualenvwrapper plugin并设置它。之后您可以设置 python 版本,然后创建一个虚拟环境。

pyenv local 3.8.0
mkvirtualenv test-venv

如果需要,您可以创建一个 shell 函数将这两行压缩为一行。

如果你不想使用pyenv local命令以避免创建 .python-version文件,你可以使用 pyenv shell <python-version>命令代替。

# .bash_profile or .zshrc after pyenv and virtualenvwrapper init.
mkvenv()
{
  pyenv shell $1
  mkvirtualenv $2 ${@:3} 
}

记住使用 mkvirtualenv test-venv -p python<version>不会选择 pyenv 安装的 python 版本。

另一种方法: 如果您只想使用 mkvirtualenv 创建一个 venv,您可以使用一个 shell 函数来替换它的行为。

# .bash_profile or .zshrc after virtualenvwrapper init.
pyvenv()
{
  python$1 -m venv $WORKON_HOME/$2
  workon $2
}

要创建 virtualenv,请使用 pyvenv <python-version> <venv-name> .您可以将所有 virtualenvwrapper 命令与新创建的 venv 一起使用。

关于python - 一起使用 virtualenvwrapper 和 pyenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61675662/

相关文章:

windows - 在 msysgit 中使用 virtualenvwrapper-win (sh.exe": mkvirtualenv: command not found), 在正常的 cmd 中工作

python - 如何在 Python 3 中创建这个复杂的字典?

python - 如何修复 "Failed building wheel for pyscipopt"?

python - Pyvenv无法创建虚拟环境

python - 哪些包被拉入新的 python virtualenv 中?

centos - python virtualenvwrapper 类型错误 : __init__() got an unexpected keyword argument 'stream'

python - Tensorflow:矩阵乘法和加法期间的nan

python - 调制所有 gpio 上的复杂信号

python-3.x - MacOS Python 3.7 virtualenv 失败?

windows - 将 virtualenvwrapper 环境从 ubuntu 转移到 windows