Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何指定用于创建虚拟环境的python版本?_Python_Python 3.x_Virtualenv - Fatal编程技术网

如何指定用于创建虚拟环境的python版本?

如何指定用于创建虚拟环境的python版本?,python,python-3.x,virtualenv,Python,Python 3.x,Virtualenv,当我使用virtualenv ~$virtualenv my\u env 但是我需要像3.6一样使用python3.5 我尝试在创建虚拟环境时使用--python=标志,但这不起作用 如何使用Mac和/或Linux的virtualenv指定要安装的python(3.x)版本?假设您已经安装了python3或任何所需的python版本(2.6、2.7、3.5、3.6),现在在创建虚拟环境时直接传递python可执行路径。因此,这里有几个有效的例子 $ virtualenv new_p2_env #

当我使用
virtualenv

~$virtualenv my\u env

但是我需要像3.6一样使用python3.5

我尝试在创建虚拟环境时使用
--python=
标志,但这不起作用


如何使用Mac和/或Linux的
virtualenv
指定要安装的python(3.x)版本?假设您已经安装了
python3
或任何所需的python版本(2.6、2.7、3.5、3.6),现在在创建虚拟环境时直接传递python可执行路径。因此,这里有几个有效的例子

$ virtualenv new_p2_env # Creates a new default python environment (usually python 2)

$ virtualenv -p python3 new_p3_env # Creates a new default python3 (python3 must be a valid command i.e found in the PATH) 
最后

# Directly point to any version of python binary, this can be even another virtualenv's bin/python. 
$ virtualenv -p /path/to/any/bin/python new_env 

我在所有ubuntu和MacOS上工作

Ubuntu:
virtualenv-p python3.6环境文件

Mac OS:
virtualenv-p python3.6环境文件


我认为应该是相同的

或者,我认为您可以使用Python本身的特定版本来创建虚拟环境。这样,您就可以确定它是正确的版本:

$ python3.5 -m venv test35
$ ./test35/bin/python
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
[GCC 4.2.1 (Apple Inc. build ) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

从3.3版开始,python包含一个名为
venv
的包。但是,该软件包没有提供与传统的
virtualenv
软件包相同的功能

venv
只允许为其安装的python版本创建虚拟环境。
virtualenv
通过提供二进制文件的路径,允许为不同版本的python创建虚拟环境

为不同版本的python创建虚拟环境: 因此,假设有人在
/path/to/
中安装了python 2.7和python 3.6,并希望使用python 3.6和python 2.7分别创建名为
env-py36
env-py27
的虚拟环境

# create a virtual env with python3's venv :
/path/to/python36/bin/python3 -m venv /my/python-venvs/env-py36
. /my/python-venvs/env-py36/bin/activate
# we're now running python 3's "env-py36" virtual env, we want to install the "virtualenv" package
pip install virtualenv
deactivate
# now use virtualenv to create a virtual environment for python 2.7
/my/python-venvs/env-py36/bin/virtualenv --python=/path/to/python27/bin/python /my/python-venvs/env-py27
使用Python3.3+venv Python 3.3+:

/path/to/python3/bin/python3 -m venv ENV_DIR
Python 3.3到3.5(在3.6+中不推荐使用):

资料来源:
我有这个问题(来到这里),但是在Windows下。Python3.9安装在一个系统上,但在3.7下开发的代码中存在问题。我想使用虚拟环境降级到3.7以帮助调试该问题。使用适用于Windows的Python启动器:

py -3.7 -m venv my_env

在python项目文件夹中,我完成了这项任务。

您的计算机上安装了python 3.5吗?您传递的
--python
标志是正确的,因此关于您的环境或调用的其他内容在这里是错误的。你能给出错误消息吗?昨天我尝试在激活的虚拟环境中运行
conda install python=3.5
,认为这会改变我环境中的python dist,但它改变了本地版本。我改回了3.6,但现在我遇到了一个问题,但答案对我来说并不适用。哦,上帝,我做了什么do@CodyPiersall安装
miniconda
似乎将路径var更改为
/Users/../miniconda3/bin:
,这与使用的python版本
virtualenv
不兼容。从路径中删除
/Users/../miniconda3/bin
可以解决此问题,但我无法使用
conda
。。。我知道这现在是一个单独的问题,但我想知道如何在不破坏virtualenv的情况下将其添加回path?我只想给那些使用Windows(和Powershell)的人一个提示。在本例中,请确保显式编写.exe,这就是我的意思:virtualenv-pc:\PythonVersionFolder\Python.exe EnvName。否则,您可能会得到PermissionError:[WinError 5]拒绝访问可能的重复只是使用
python3.6
创建了一个虚拟环境。我想要
python3.5
您可以轻松找到卸载
python3.6
并安装
python3.5
的方法。如果您必须在同一台机器上保留多个版本的python,请使用
pyenv
pythonbrew
hey@itsno之类的工具谢谢您的建议!进一步阅读您的评论,我会正确地理解,当您创建一个使用本地python版本(2.x/3.x)的虚拟环境时,
virtualenv
$PATH
中指定,并且无法通过
virtualenv
命令本身更改特定的python版本?您仍然可以创建一个直接提及python可执行路径的路径,如
virtualenv-p/usr/local/bin/python35 env_name
nice。是的,我最终用康达创建了venv。如果您的所有Python版本都被简单地称为
Python
,那么如果您知道完整的路径,您仍然可以单独引用每一个版本。因此,
/opt/srv/whatever/path/to/python345/bin/python-m venv test345
将为python 3.4.5创建一个虚拟环境,如果您在该特定路径中安装了它。
py -3.7 -m venv my_env