如何使用Python3创建虚拟环境

41

我正在使用 Python 2.7 + virtualenv版本1.10.1 运行我的项目。由于其他项目的要求,我不得不使用其他版本的Python(Python 3.5)和Django 1.9。为此,我已经在用户目录中安装了Python,并下载并安装了virtualenv(版本-15.1.0)到我的用户目录中。 但是,每当我尝试创建虚拟环境时,我都会收到下面的错误:

python virtualenv/virtualenv.py myproject

Using base prefix '/home/myuser/python3'
New python executable in /home/mount/myuser/project_python3/myproject/bin/python
ERROR: The executable /home/mount/myuser/project_python3/myproject/bin/python is not functioning
ERROR: It thinks sys.prefix is '/home/myuser/python3' (should be '/home/mount/myuser/project_python3/myproject')
ERROR: virtualenv is not compatible with this system or executable

有人能告诉我我在这个问题中做错了什么吗?


1
当你运行 python virtualenv/virtualenv.py myproject 时,不清楚你使用的是哪个 Python。这里的 python 是你的系统 Python (2.7) 还是本地 Python (3.5)? - Chris
1
你是否使用了正确的pip,即pip3,来安装virtualenv版本-15.1.0? - PM 2Ring
@Chris 我正在使用Python3.5。 - Anish
@PM2Ring 我已经使用了命令python -m pip <virtualenv package>。 - Anish
通常情况下,“python”指的是Python 2,你需要使用“python3”来引用Python 3。例如,“python3 -m pip install some_package”。但正如其他人所说,最好使用包含在Python 3最新版本中的“venv”模块。 - PM 2Ring
显示剩余5条评论
10个回答

91

在Python 3.6及以上版本中,pyvenv模块已被弃用。请使用以下一行命令替代:

python3 -m venv <myenvname>

这是Python社区推荐的创建虚拟环境的方法。


9

创建虚拟环境

virtualenv -p python3 venv_name 

这将在baseDirectory/bin/python3中创建新的Python可执行文件。

如何激活新建的虚拟环境:

cd baseDirectory/bin/  

source activate  

取消激活新的虚拟环境

deactivate 

更新_1

这种方法已经被淘汰,现在推荐使用venv来创建虚拟环境。请参考此链接获取最新的解答。


值得记住的是,人们在下面说的话:自从Python 3.3版本以来,无需安装和使用virtualenv,因为venv作为嵌入式模块存在。顺便说一句,为source venv/bin/activate创建别名比cd和激活它更有效率。 - pdaawr

6

自从Python 3.3版本起,Python已经自带了内置的“虚拟环境”,称为venv。您无需再安装或下载适用于Python 3.3+的virtualenv脚本。

https://docs.python.org/3/library/venv.html

请检查您的安装是否提供了pyvenv命令,该命令应负责创建“虚拟环境”。参数与传统的virtualenv项目类似。

$ pyvenv --help
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
            [--upgrade] [--without-pip]
            ENV_DIR [ENV_DIR ...]

Creates virtual Python environments in one or more target directories.

positional arguments:
  ENV_DIR               A directory to create the environment in.

optional arguments:
  -h, --help            show this help message and exit
  --system-site-packages
                        Give the virtual environment access to the system
                        site-packages dir.
  --symlinks            Try to use symlinks rather than copies, when symlinks
                        are not the default for the platform.
  --copies              Try to use copies rather than symlinks, even when
                        symlinks are the default for the platform.
  --clear               Delete the contents of the environment directory if it
                        already exists, before environment creation.
  --upgrade             Upgrade the environment directory to use this version
                        of Python, assuming Python has been upgraded in-place.
  --without-pip         Skips installing or upgrading pip in the virtual
                        environment (pip is bootstrapped by default)

Once an environment has been created, you may wish to activate it, e.g. by
sourcing an activate script in its bin directory.

5
这个脚本在Python 3.6+版本被弃用了,虽然该模块仍然存在。建议使用的方法是:python3 -m venv <myenvname> - The Aelfinn
@user73657 我正在使用Python 3.5。但是,如果我运行pyenv命令,它会显示"command not found"。 - Anish
@user73657,pyenv在3.5.3中不可用。 - Anish
@Anish,这个脚本不是 pyenv 而是 _pyvenv_。 - Chris
哦,抱歉。让我试一下。 - Anish

3

virtualenv 是 Python 2 的首选工具,而 Python 3 中则使用 venv 来处理相同的任务。

然而你可以使用它们中的任何一个来创建 Python 3 的虚拟环境。

使用 venv

python3 -m venv 虚拟环境名称

命令语法:

/Python3所在路径/python3 -m venv /虚拟环境文件夹路径/虚拟环境名称

使用 virtualenv

virtualenv -p python3 虚拟环境名称

命令语法:

virtualenv -p /Python3所在路径/python3 /虚拟环境文件夹路径/虚拟环境名称

激活虚拟环境

在 Linux、Unix 或 MacOS 中,使用终端或 bash shell:

source /虚拟环境文件夹路径/bin/activate

例如:source 虚拟环境名称/bin/activate

在 Unix 或 MacOS 中,使用 csh shell:

source /虚拟环境文件夹路径/bin/activate.csh

在 Unix 或 MacOS 中,使用 fish shell:

source /虚拟环境文件夹路径/bin/activate.fish

在 Windows 中,使用命令提示符:

/虚拟环境文件夹路径/Scripts/activate.bat

在 Windows 中,使用 PowerShell:

/虚拟环境文件夹路径/Scripts/Activate.ps1

退出虚拟环境

在 Linux、Unix 或 MacOS 中,使用终端或 bash shell:

deactivate

在 Windows 中,使用命令提示符:

/虚拟环境文件夹路径/Scripts/deactivate.bat

在 Windows 中,使用 PowerShell:

deactivate

本答案适用于使用不同操作系统的用户。


1
自从Python 3.3版本发布以来,无需单独下载virtualenv软件包,因为它已经内置在Python中。
请参考文档以获得完整的了解。
测试virtualenv的安装:
$ virtualenv --version 

用法:

1.创建虚拟环境:
$ virtualenv --system-site-packages -p python3 ./virtual_env_name

2.启用虚拟环境,请使用以下命令:
$ source ./virtual_env_name/bin/activate

3.禁用虚拟环境并返回本地环境:
$ deactivate

要列出虚拟环境中的软件包,请使用以下命令:
$ pip3 list


0

创建Python3的虚拟环境:

virtualenv -p /usr/bin/python3 虚拟环境名称

创建虚拟环境后,需要使用以下命令激活它:

source 虚拟环境名称/bin/activate

要停用,请使用以下命令:

deactivate


0

如果您使用的是Windows操作系统。

  1. 官方网站手动下载并安装您想要的Python版本。

  2. 安装完成后,搜索“python”以定位文件夹,以便您可以确定路径。

  3. 获取.exe的路径(例如:C:\Users\Path\Programs\Python\Python38\python.exe)。

  4. 在您想要创建环境的文件夹内...启动Bash或VSCode终端,或任何命令提示符,键入[python .exe path] -m venv [env name],如下所示:

    C:/Users/Path/Programs/Python/Python38/python.exe -m venv myenv

  5. (请注意,在第4步中,您必须将正斜杠更改为反斜杠)

  6. 像这样激活环境:

    source myenv/Scripts/activate


0

我使用以下命令进行安装(适用于Python 3.x):

$ python3 -m venv env

0

创建虚拟环境:

对于Python 3版本:

命令:python3 -m venv [environment_name]

示例:python3 -m venv my_virtual_environment

对于Python 2版本:

命令:python -m [environment_name]

示例:python -m venv my_virtual_environment

在Linux中激活虚拟环境:

进入虚拟环境目录,然后打开终端。

命令:source [environment_name]/bin/activate

示例:source my_virtual_environment/bin/activate

在Windows中激活虚拟环境:

进入虚拟环境目录,然后打开命令提示符。

命令:[environment_name]\Scripts\activate

示例: my_virtual_environment\Scripts\activate


-1

在virtualenv的基础上安装virtualenvwrapper以简化操作。

按照博客中的简单步骤进行安装:virtualenvwrapper

创建步骤:

  1. mkvirtualenv -p /usr/bin/python3
  2. 使用pip install package_name安装软件包
  3. workon - 激活虚拟环境,deactivate - 取消激活虚拟环境

1
如果virtualenv本身无法正常工作,那么在virtualenv周围添加一个包装器将如何帮助? - Chris
这是一个重复的答案。这也是一个不正确的答案。virtualenv已过时,这是virtualenv的包装器。 - The Aelfinn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接