Python venv(虚拟环境)使用错误版本的Python

Python venv (virual environment) uses wrong version of Python

我安装了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版本,如何使其使用正确的版本?

1
2
3
4
5
6
7
8
(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,并且正如其他现有答案所指的那样。

enter image description here


在创建环境时使用此选项:

1
virtualenv --python=/usr/bin/python3.6

但是如果你想使用venv,首先,检查终端中的python3是否指向你想要的python3.6

如果不是 - 使用python3.6的完整路径运行命令,而不是python3 -m venv venv中的唯一python3

编辑:为什么你的别名python3指的是python3.7 - 它可能取决于你使用的操作系统和安装顺序。 很难说。


Python版本与virtualenv python版本不同,这就是它抱怨的原因。
您可以重新创建虚拟环境(删除现有环境)并使用以下命令

virtualenv --python = your python version here venv
要么

mkvirtualenv venv --python = your python version here

如果要使用mkvirtualenv命令创建虚拟环境。