如何使用 python3 创建虚拟环境
Posted
技术标签:
【中文标题】如何使用 python3 创建虚拟环境【英文标题】:How to create virtual env with python3 【发布时间】:2017-08-21 12:58:06 【问题描述】:我正在使用 python 2.7 + virtualenv 版本 1.10.1 来运行 myproject 项目。由于一些其他项目的要求,我必须使用其他版本的 python(Python 3.5) 和 Django 1.9。为此,我在我的用户目录中安装了 python。此外,我已将 virtualenv(version - 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
谁能告诉我我做错了什么
【问题讨论】:
运行python virtualenv/virtualenv.py myproject
时,不清楚你使用的是哪个Python。 python
这里是你的系统 Python (2.7) 还是你本地的 Python (3.5)?
您是否使用了正确的 pip(即 pip3)来安装 virtualenv 版本 - 15.1.0?
我总是觉得these docs 很有帮助。
@Chris 我正在使用 python3.5
@PM2Ring 我使用了命令 python -m pip 在 Python 3.6+ 中,不推荐使用 pyvenv 模块。请改用以下单行:
python3 -m venv <myenvname>
这是 Python 社区创建虚拟环境的recommended way。
【讨论】:
【参考方案2】:创建虚拟环境
virtualenv -p python3 venv_name
这将在 baseDirectory/bin/python3 中创建新的 python 可执行文件
如何激活新创建的 Venv:
cd baseDirectory/bin/
source activate
停用新的 venv
deactivate
UPDATE_1
此方法已折旧为The use of venv is now recommended for creating virtual environments。 请查看this 链接以获取最新答案
【讨论】:
值得记住的是人们在下面所说的:从 Python 3.3 版开始,不需要安装和使用virtualenv
,因为venv
作为嵌入式模块存在。顺便提一句。为source venv/bin/activate
创建别名比 cd 并激活它要高效得多。【参考方案3】:
自 3.3 版以来,Python 已经附带了名为 venv
的内置“virtualenv”。您不再需要为 Python 3.3+ 安装或下载 virtualenv
脚本。
https://docs.python.org/3/library/venv.html
检查您的安装是否提供了应该负责创建“virtualenv”的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.
【讨论】:
此脚本在 Python 3.6+ 中已弃用,尽管该模块仍然存在。推荐使用:python3 -m venv <myenvname>
@user73657 我正在使用 python 3.5 。但是,如果我运行命令 pyenv 它的说命令未找到
@user73657 pyenv 在 3.5.3 中不可用
@Anish,脚本不是pyenv
,而是pyvenv
。
太好了,@Anish!请记得accept 解答您的问题。【参考方案4】:
自 Python 3.3 版推出以来,由于 Python 内置了 virtualenv
包,因此无需单独下载。
请参阅documentation 以获得完整的见解。
测试virtualenv的安装:
$ virtualenv --version
用法:
1.创建虚拟环境: $ virtualenv --system-site-packages -p python3 ./virtual_env_name
2.要启用它,请使用以下命令: $ source ./virtual_env_name/bin/activate
3.关于禁用虚拟环境并重新使用本地环境: $停用
要列出虚拟环境中的包,请使用 以下命令: $ pip3 列表
【讨论】:
【参考方案5】:virtualenv 是 Python 2 的首选工具,而 venv 在 Python 3 中处理任务。
不过,您可以使用其中任何一个为 Python 3 创建虚拟环境。
使用venv
python3 -m venv virtualenvname
命令语法:
/path/to/python3 -m venv /path/to/directory/virtual_env_name
使用virtualenv
virtualenv -p python3 virtualenvname
命令语法:
virtualenv -p /path/to/python3 /path/to/directory/virtual_env_name
激活虚拟环境
在 Linux、Unix 或 MacOS 上,使用终端或 bash shell:
source /path/to/venv/bin/activate
例如source virtualenvname/bin/activate
在 Unix 或 MacOS 上,使用 csh shell:
source /path/to/venv/bin/activate.csh
在 Unix 或 MacOS 上,使用 fish shell:
source /path/to/venv/bin/activate.fish
在 Windows 上使用命令提示符:
path\to\venv\Scripts\activate.bat
在使用 PowerShell 的 Windows 上:
path\to\venv\Scripts\Activate.ps1
停用虚拟环境
在 Linux、Unix 或 MacOS 上,使用终端或 bash shell:
deactivate
在 Windows 上使用命令提示符:
path\to\venv\Scripts\deactivate.bat
在使用 PowerShell 的 Windows 上:
deactivate
此答案适用于可能使用不同操作系统的人。
【讨论】:
【参考方案6】:我使用命令安装它(对于 Python 3.x),
$ python3 -m venv env
【讨论】:
【参考方案7】:在python3中创建虚拟环境:
virtualenv -p /usr/bin/python3 virtualenvname
创建虚拟环境后,我们需要使用以下命令激活它:
source virtualenvname/bin/activate
使用以下命令停用:
deactivate
【讨论】:
【参考方案8】:如果你在 Windows 上。
从official site手动下载安装你想要的python版本
安装后,搜索“python”找到文件夹,这样就可以识别路径了
获取.exe的路径(例如:C:\Users\Path\Programs\Python\Python38\python.exe)
在要创建环境的文件夹中...启动 bash 或 VSCode 终端,或任何命令提示符,输入 [python .exe path] -m venv [env name] 之类的这个:
C:/Users/Path/Programs/Python/Python38/python.exe -m venv myenv
(请注意,您必须在步骤 4 中将路径的正斜杠更改为反斜杠)
像这样激活环境:
source myenv/Scripts/activate
【讨论】:
【参考方案9】:在 virtualenv 之上安装 virtualenvwrapper 以简化事情。 按照博客简单的步骤安装:virtualenvwrapper
创建步骤:
-
mkvirtualenv -p /usr/bin/python3
使用 - pip install package_name 安装包
workon
- 激活 virtualenv,deactivate
- 停用 viirtualenv
【讨论】:
如果virtualenv
本身不起作用,在virtualenv
周围添加包装器将如何提供帮助?
这是一个重复的答案。这也是一个错误的答案。 virtualenv 已弃用,这是 virtualenv 的包装器以上是关于如何使用 python3 创建虚拟环境的主要内容,如果未能解决你的问题,请参考以下文章