Python venv(虚拟环境)使用了错误的 Python 版本
Posted
技术标签:
【中文标题】Python venv(虚拟环境)使用了错误的 Python 版本【英文标题】:Python venv (virual environment) uses wrong version of Python 【发布时间】:2019-04-21 16:09:55 【问题描述】:我同时安装了 Python 3.7 和 3.6。但在我的个人资料中,我设置为使用 3.6,这确实是由which python3
报告的版本。
$ which python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
然后我通过运行python3 -m venv venv
创建虚拟环境
我的 venv 中的所有内容都与 3.6 相关联。我通过ls -la venv/bin
和检查venv/pyvenv.cfg
确认了这一点。
我激活了 venv 虚拟环境。
然后我用pip install zappa
安装一个zappa 库。
当我运行zappa deploy
时,我收到一个错误,即不支持 Python 3.7。为什么库会使用未在 virtualenv 中配置的 Python 版本,如何使其使用正确的版本?
(venv) $ zappa deploy
Traceback (most recent call last):
File "/Users/t/Projects/djzappa/Spheres/venv/bin/zappa", line 7, in <module>
from zappa.cli import handle
File "/Users/t/Projects/djzappa/Spheres/venv/lib/python3.7/site-packages/zappa/__init__.py", line 12, in <module>
raise RuntimeError(err_msg)
RuntimeError: This version of Python (3.7) is not supported!
Zappa (and AWS Lambda) support the following versions of Python: ['2.7', '3.6']
注意:我不使用每个人都建议的 virtualenv,以及其他现有答案所指的。
【问题讨论】:
Using Python 3 in virtualenv的可能重复 不,它不是重复的。 使用pip3安装zappa,pip可能指向3.7版本。 是的,实际上是重复的。 - 你标记为答案的答案,可以在我标记的那个中找到。 哪一个?因为我找不到一个解释不同版本 Python 的安装顺序的解释——这就是解决我的问题的原因。包括评论讨论。 【参考方案1】:创建环境时使用这个:
virtualenv --python=/usr/bin/python3.6
但是如果你想使用venv,首先检查你终端中的python3
是否如你所愿引用python3.6
。
如果不是 - 使用 python3.6 的完整路径而不是 python3 -m venv venv
中的唯一 python3
运行您的命令。
编辑:为什么您的别名 python3 指的是 python3.7 - 这可能取决于您使用的操作系统和安装顺序。很难说。
【讨论】:
我不使用 virtualenv。我使用'python3 -m venv'。 尝试使用 /usr/bin/python36 -m venv;如果还是不行,请安装virtualenv。 $ /usr/bin/python36 -bash: /usr/bin/python36: 没有这样的文件或目录 $ which python3 /Library/Frameworks/Python.framework/Versions/3.6/bin/python3 这个文件不是符号链接吗?/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
【参考方案2】:
Python 版本与 virtualenv python 版本不同,这就是它抱怨的原因。 您可以重新创建您的虚拟环境(删除现有的)并使用以下命令
virtualenv --python=your python version here
venv
或者
mkvirtualenv venv --python=your python version here
如果您想使用 mkvirtualenv 命令创建虚拟环境。
【讨论】:
我不使用 virtualenv。我使用'python3 -m venv'。【参考方案3】:作为已接受答案的补充,请注意更改 venv 所在的目录名称会导致使用系统的默认 python 和 pip 路径,而不是使用 venv 路径。
【讨论】:
以上是关于Python venv(虚拟环境)使用了错误的 Python 版本的主要内容,如果未能解决你的问题,请参考以下文章