ChatGPT解决这个技术问题 Extra ChatGPT

使用不同的 Python 版本和 virtualenv

如何为指定版本的 Python 创建虚拟环境?

只是提到你也可以使用 virtualenvwrapper 来做到这一点。
值得注意的是,在 python 3 中,有一个内置的 virtualenv 等效项:venv
不创建新环境就不能在当前环境切换python版本吗?
youtube.com/watch?v=N5vscPTWKOk virtualenv 文档中推荐的此视频介绍了整个流程步骤。

M
Mateen Ulhaq

注意:对于 Python 3.3+,请参阅下方 The Aelfinn 的answer

在创建 virtualenv 实例时使用 --python(或简称 -p)选项来指定要使用的 Python 可执行文件,例如:

virtualenv --python="/usr/bin/python2.6" "/path/to/new/virtualenv/"

我想我会提到这也适用于 virtualenvwrappers: mkvirtualenv -p python2.6 env
我在这里遗漏了一些东西——这不需要系统上已经安装了 2.6 吗?我认为 virtualenv 的重点是我可以拥有一个主要版本以外的 python 版本(在我的例子中,CentOS 上的 2.4)。我假设我可以安装 virtualenv,然后在它下面安装 Python 2.6 以便在 env 中使用包?
@John 是的,你是。这不是 virtualenv 的重点:重点是为 Python 创建一个沙盒环境。您需要先安装该版本 - 不过,您可以在本地为您的用户安装它。
@JohnC 您可以使用 pythonbrew 安装替代 python。
如果您有点懒惰:virtualenv -p `which python2.6` <path/to/new/virtualenv>
M
Mateen Ulhaq

从 Python 3 开始,documentation 建议使用以下方法创建虚拟环境:

python3 -m venv "my_env_name"

请注意,venv 不允许使用其他版本的 Python 创建虚拟环境。为此,请安装并使用 virtualenv 软件包。

过时的信息

pyvenv 脚本可用于创建虚拟环境:

pyvenv "/path/to/new/virtual/environment"

自 Python 3.6 起已弃用。


很高兴你指出,它需要更多的推广。一个小问题:他们现在提倡将其作为 python3 -m venv <envname> 运行,以防止所有内容都需要存根脚本。
实际上,pyvenv 脚本是 Python 3.6+ 中的 deprecated,尽管底层 venv 模块本身不是。所以使用 python 3 -m venv <myenvname> 正如@PaulEveritt 所说。
请注意 pyvenvpython3 -m venv ... 不要安装 python-config 脚本。这意味着即使在激活您的 Python3 环境之后,系统范围的 python-config 也会被调用,结果令人困惑。请参阅 2011 年的此错误报告 github.com/pypa/virtualenv/issues/169 和我的问题 stackoverflow.com/questions/42020937/…
确认 @Nick 的观察有效:使用特定 Python 版本创建 venv 的方法是在设置时使用该版本。例如:python3.5 -m venv venv
仍然可以通过 venv 使用不同的 python 版本。您只需确保使用适当的 python 版本来运行 venv,而不是像 virtualenv 那样提供参数。以 py 为例,python 启动器:py -3.3 -m venv my_venv 将使用 python 3.3 创建一个虚拟环境。
E
Eliahu Aaron

这些是您在共享主机环境中并且需要安装 &从源代码编译 Python,然后从您的 Python 版本创建 venv。对于 Python 2.7.9。你会按照这些思路做一些事情:

mkdir ~/src
wget http://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
mkdir ~/.localpython
./configure --prefix=$HOME/.localpython
make
make install

虚拟环境

cd ~/src
wget https://pypi.python.org/packages/5c/79/5dae7494b9f5ed061cff9a8ab8d6e1f02db352f3facf907d9eb614fb80e9/virtualenv-15.0.2.tar.gz#md5=0ed59863994daf1292827ffdbba80a63
tar -zxvf virtualenv-15.0.2.tar.gz
cd virtualenv-15.0.2/
~/.localpython/bin/python setup.py install
virtualenv ve -p $HOME/.localpython/bin/python2.7
source ve/bin/activate   

自然,这可以适用于您想要复制您工作和部署的确切环境的任何情况。


您能否详细说明为什么要这样做:为什么在本地安装 python?更重要的是,为什么要使用您想要使用的 python 版本来安装 virtualenv?
当然。如果您在虚拟主机环境中,并且服务器提供了您不满意的旧版 python - 这就是我的情况。此外,如果您碰巧在不同的服务器上开发项目,并且您想在本地计算机上复制这些环境...... Virtualenv 创建到 python libs 的硬链接。因此,您用于安装和创建 Virtualenv 的 python 版本非常重要。
或者,如果您像我一样,并且在没有 sudo 权限的工作中使用锁定的机器。库、SQL 数据库、语言和编译器的本地副本!谢谢!
在 virtualenv 1.9.1 下,我必须使用 ~/.localpython/bin/virtualenv 而不仅仅是 virtualenv 才能完成安装而不会出错。此外,使用 source ve/bin/activate 而不是 source activate
这样做的另一个原因是在它们成为主要版本之前尝试测试版,以确保您的项目及其依赖项仍然可以工作,而不会冒着破坏某些东西并将悬空文件留在各处的风险而破坏您的包管理。我喜欢这个答案。
D
Daniel Lee

有一个更简单的方法,

virtualenv venv --python=python2.7

感谢评论,这仅在您在系统级别安装了 python2.7 时才有效(例如 /usr/bin/python2.7)。

否则,如果您使用的是自制软件,则可以使用该路径为您提供所需的内容。

virtualenv venv --python=/usr/local/bin/python

你可以找到你的python安装路径

which python

这也适用于 python 3。

which python3
>> /usr/local/bin/python3
virtualenv venv --python=/usr/local/bin/python3

最终浓缩为:

virtualenv venv -p `which python`
virtualenv venv -p `which python3`

仅供参考,仅当您在系统级别安装了 python2.7 时才有效(例如 /usr/bin/python2.7)
我也能用 virtualenv venv --python=python3.6 做到这一点
您实际上可以删除次要版本号。 virtualenv env --python=python2
这是一个正确的解决方案,一旦您拥有所有版本,您就有兴趣使用别名而不是完整路径
在 Windows 中,这就像一个小调整的魅力:virtualenv venv --python=<insert_your_python_version_here> 其中 <insert_your_python_version_here> 在我的情况下 C:\Python\Python368\python.exe
J
Jan
virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>

有关使用环境变量的等效解决方案,请参阅下面的答案。这种方法意味着您不必记住使用 -p
有没有不需要创建新的虚拟环境就可以在 python 版本之间切换的解决方案?
如果您想安装系统上未安装的 python 版本,这会起作用吗?假设您想测试 python3.6 但不想触摸安装在您计算机上的 python3.5
@alpha_989 你找到解决方案了吗?
b
balazs

在 Windows 下对我来说这有效:

virtualenv --python=c:\Python25\python.exe envname

没有 python.exe 我得到 WindowsError: [Error 5] Access is denied 我安装了 Python2.7.1 和 virtualenv 1.6.1,我想要 python 2.5.2。


这是唯一对我有用的方法。谢谢你的帖子!
7
7stud

Mac OSX 10.6.8(雪豹):

1) 当您执行 pip install virtualenv 时,pip 命令与您的一个 python 版本相关联,并且 virtualenv 被安装到该版本的 python 中。你可以做

 $ which pip   

看看那是什么版本的python。如果你看到类似的东西:

 $ which pip
 /usr/local/bin/pip

然后做:

$ ls -al /usr/local/bin/pip
lrwxrwxr-x  1 root  admin  65 Apr 10  2015 /usr/local/bin/pip ->
../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip

您可以在输出中看到 python 版本。

默认情况下,这将是用于您创建的任何新环境的 python 版本。但是,您可以使用 -p flag 指定计算机上安装的任何 python 版本以在新环境中使用:

$ virtualenv -p python3.2 my_env  
Running virtualenv with interpreter /usr/local/bin/python3.2  
New python executable in my_env/bin/python  
Installing setuptools, pip...done.  

virtualenv my_env 将在当前目录中创建一个文件夹,该文件夹将包含 Python 可执行文件,以及可用于安装其他包的 pip [command] 的副本。

http://docs.python-guide.org/en/latest/dev/virtualenvs/

virtualenv 只需将 python 从您计算机上的某个位置复制到新创建的 my_env/bin/ 目录中。

2)系统python在/usr/bin中,而我安装的各种python版本默认安装到:

 /usr/local/bin

3) 我安装的各种 python 的名称如 python2.7python3.2,我可以使用这些名称而不是完整路径。

========VIRTUALENVWRAPPER=========

1)我在让 virtualenvwrapper 工作时遇到了一些问题。这就是我最终放入 ~/.bash_profile 的内容:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/django_projects  #Not very important -- mkproject command uses this
#Added the following based on: 
#http://stackoverflow.com/questions/19665327/virtualenvwrapper-installation-snow-leopard-python
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7 
#source /usr/local/bin/virtualenvwrapper.sh
source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh

2) -p option 与 virtualenvwrapper 的工作方式不同:我必须指定要在新环境中使用的 python 解释器的完整路径(当我不想使用默认的 python 版本时):

$ mkvirtualenv -p /usr/local/bin/python3.2 my_env
Running virtualenv with interpreter /usr/local/bin/python3
New python executable in my_env/bin/python
Installing setuptools, pip...done.
Usage: source deactivate

removes the 'bin' directory of the environment activated with 'source
activate' from PATH. 

与 virtualenv 不同,virtualenvwrapper 将在 $WORKON_HOME 环境变量指定的位置创建环境。这将您的所有环境保存在一个地方。


which pip 没有告诉我 Python 的版本。它给了我这个-/usr/local/bin/pip
@Sankalp,如果您 cd 到 /usr/local/bin 并执行 $ ls -al pip,您应该会看到如下内容:pip -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip
已经在回答中有所注意,但如果您希望它创建项目目录和给定 python 版本的虚拟环境,则使用 mkproject 的命令。 mkproject -p /usr/bin/python3.6 myNewPython36Project
@7stud 当我 cd 到 /usr/local/bin 并执行 ls -al pip 我得到这个 -rwxr-xr-x 1 root admin 266 23 Mar 09:40 pip
@kd12345,那么也许不要依赖默认值并指定要与 virtualenv -p 一起使用的 python 版本。
V
Victoria Stuart

[2019 年 11 月] 我需要在基于 Python 3.8 的 Arch Linux 系统上安装 Python 3.7 环境 (env)。 Python 3.7 不再在系统上,所以我无法降级 Python 来安装我需要的包。

此外,我想在虚拟环境(venv)中使用该包/Python 3.7。我就是这样做的。

下载Python版本源文件:

我从以下位置下载了 Python 3.7.4 源文件

https://www.python.org/downloads/source/

/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz

然后我将该存档(源文件)提取到

/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/

安装:

[注意:在我的系统环境中,不是 venv。]

cd /mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
time ./configure                 ## 17 sec
time make                        ## 1 min 51 sec
time sudo make install           ## 18 sec
time make clean                  ## 0.3 sec

检查已安装的 Python 版本:

$ which python
/usr/bin/python

$ python --version
Python 3.8.0

$ which python3.7
/usr/local/bin/python3.7

$ python    ## Python 3.8 [system / env]
Python 3.8.0 (default, Oct 23 2019, 18:51:26) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

$ python3.7    ## newly-installed Python 3.7 package
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0]
>>>

$ python3.7 --version                                                                                                 
Python 3.7.4

如何为特定的 Python 版本创建 venv:

https://docs.python.org/3/tutorial/venv.html 12.2。创建虚拟环境 用于创建和管理虚拟环境的模块称为 venv。 venv 通常会安装你可用的最新版本的 Python。如果您的系统上有多个 Python 版本,您可以通过运行 python3 或您想要的任何版本来选择特定的 Python 版本。要创建虚拟环境,请确定要放置它的目录,然后将 venv 模块作为具有目录路径的脚本运行: python3 -m venv tutorial-env 如果没有,这将创建 tutorial-env 目录存在,并在其中创建目录,其中包含 Python 解释器、标准库和各种支持文件的副本。 ...

创建 Python 3.7 venv [在 Python 3.8 操作 env / 系统上]:

python3.7 -m venv ~/venv/py3.7      ## create Python 3.7-based venv
source ~/venv/py3.7/bin/activate    ## activate that venv
deactivate                          ## deactivate that venv (when done, there)

添加到 ~/.bashrc

alias p37='echo "   [Python 3.7 venv (source ~/venv/py3.7/bin/activate)]" && source ~/venv/py3.7/bin/activate'

测试 Python 3.7 venv:

$ p37                                                                                                                 
[Python 3.7 venv (source ~/venv/py3.7/bin/activate)]

(py3.7)$ python --version
Python 3.7.4

(py3.7)$ python
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] 
>>>

这是一个非常彻底的答案! :) 每次我需要将某些东西从 Arch Linux 转移到任何其他(例如 Debian-ish)系统时,我都会遇到这个问题。
@Victoria Stuart,非常感谢。这正是我一直在寻找的。
以下是关于如何在 Debian linuxize.com/post/how-to-install-python-3-7-on-debian-9 上从源代码安装 Python 3.7 的良好分步说明。但像往常一样,它建议使用 sudo make altinstall,我强烈建议以普通用户身份安装,例如 ./configure --prefix=~/my-python-3.7 && make -j8 && make install。然后你可以做~/my-python-3.7/bin/python -m venv myvirtualenv
k
kmario23

假设您当前在 virtualenv 中安装了 python 2.7。但是要使用 python3.2,您必须使用以下内容进行更新:

$ virtualenv --python=/usr/bin/python3.2 name_of_your_virtualenv

然后通过以下方式激活您的 virtualenv:

$ source activate name_of_your_virtualenv

然后在 shell 中执行:python --version 以检查您的版本现在是否已更新。


有关使用环境变量的等效解决方案,请参阅下面的答案。这种方法意味着您不必记住使用 -p
C
CrmXao

你应该安装了那个 Python 版本。如果你有它,那么基本上,

使用 virtualenv,

virtualenv --python=python3.8 env/place/you/want/to/save/to

带venv

python3.8 -m venv env/place/you/want/to/save/to

以上示例适用于python3.8,您可以将其更改为具有不同版本的虚拟环境,前提是它们已安装在您的计算机中。


如何使用上述命令安装特定版本的 python?
例如,如果您在计算机中安装了 python3.8,则上面的示例将创建 python3.8 环境。
是的,它像你说的那样工作,但我需要一个不同的版本意味着在我的电脑上安装了 python3.9,但我需要为 python3.6 创建虚拟环境。
如果您从特定的 conda 环境 python 版本创建 venv,是否有人尝试或检查过会发生什么?根据我看到和阅读的内容(here),在创建 venv 时可以为使用不同的 Python 版本增加很多灵活性?
Q
Quint

这两个命令应该可以正常工作。

virtualenv -p python2 myenv(对于 python2)

virtualenv -p python3 myenv(对于 python3)


标志 -p python2 的作用等同于查找 /usr/bin/python2。使用:virtualenv -p python2.7 myenv 用于 2.7 等。
N
Nima Soroush

您可以使用所需的 python 版本调用 virtualenv。例如:

python3 -m virtualenv venv

或者直接指向您的 virtualenv 路径。例如对于窗户:

c:\Python34\Scripts\virtualenv.exe venv

通过运行:

venv/bin/python

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

可以看到虚拟环境中安装的python版本


运行第一个命令 /usr/local/bin/python3 时出现此错误:没有名为 virtualenv 的模块
@tanvi:您需要先将 virtualenv 安装到您的 python3 中。先运行 pip3 install virtualenv
C
Chris Johnson

-p 方法效果很好,但您必须记住每次都使用它。如果您的目标是通常切换到较新版本的 Python,那会很痛苦,而且还会导致错误。

您的另一个选项是设置一个与 -p 执行相同操作的环境变量。通过您的 ~/.bashrc 文件或您为登录会话管理环境变量的任何位置进行设置:

export VIRTUALENV_PYTHON=/path/to/desired/version

然后,只要您未在命令行上指定 -pvirtualenv 就会使用它。


这很好用。知道为什么根据 virtualenvwrapper docs 设置 export VIRTUALENVWRAPPER_PYTHON=/path/to/desired/version 不起作用但此解决方案确实有效吗?
该 env var 控制运行时使用的 Python virtualenvwrapper,与安装无关。
这对我有用。不再需要每次创建新的 virtualenv 时都使用 -p。谢谢!
s
silverdagger

在 Mac 上,我使用 pyenv 和 virtualenvwrapper。我必须创建一个新的 virtualenv。你需要自制软件,如果你在 Mac 上,我假设你已经安装了它,但只是为了好玩:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
export PATH=/Users/{USERNAME}/.pyenv/versions/2.7.10/bin:$PATH
mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python  {virtual_env_name}

我也先冻结了我的要求,所以我可以简单地在新的 virtualenv 中重新安装:

pip install -r requirements.txt

命令应该是 mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python {virtual_env_name} 个版本,而不是版本。如果 SO 允许简短的编辑,我会修复它。
pyenv 通过 pyenv-virtualenv 插件包括 virtualenv 支持,所以我发现我真的不需要 virtualenvwrapper。 my pyenv answer 中有更多详细信息。
我绝对同意@RichVel,使用提供的 pyenv-virtualenv 和 pyenv 是我们可以要求的最完美的体验! (参见realpython.com/intro-to-pyenv/#virtual-environments-and-pyenv
G
Gerard

更简单的是,通过使用命令替换为您找到 python2:

virtualenv -p $(which python2) <path/to/new/virtualenv/>

或者在使用 virtualenvwrapper 时:

mkvirtualenv -p $(which python2) <env_name>


Z
Zihao Zhao

对于 Mac(High Sierra),在 python3 上安装 virtualenv 并为 python2 创建一个 virtualenv:

 $ python3 -m pip install virtualenv
 $ python3 -m virtualenv --python=python2 vp27
 $ source vp27/bin/activate
 (vp27)$ python --version
 Python 2.7.14

如果没有,请在 python3 上安装 virtualenv:python3 -m pip install virtualenv
C
Cole Smith

这些对于 Windows 来说似乎有点过于复杂。如果您在 Windows 上运行 python 3.3 或更高版本,则可以使用 python 启动器 py 更轻松地执行此操作。只需安装不同的 python 版本,然后运行:

py -[my version] -m venv env

这将使用 python [my version] 在您的当前目录中创建一个名为 env 的虚拟环境。举个例子:

py -3.7 -m venv env
./env/Scripts/activate

这将使用 python3.7 创建一个名为 env 的虚拟环境并激活它。不需要路径或其他复杂的东西。


不应该是 py -3.7 -m venv env(缺少 -m)吗?
是的,已在帖子中修复!
运行 py 是有风险的,因为如果配置了它,它可能会在不同的目录中运行 Python。最好使用 python.exe 在正确的 Python 目录中,并改用 python 关键字。
P
PetarMI

正如多个答案中已经提到的,使用 virtualenv 是一个干净的解决方案。然而,每个人都应该知道的一个小陷阱是,如果在 bash_aliases 中设置了 python 的别名,例如:

python=python3.6

这个别名也将在虚拟环境中使用。因此,在这种情况下,在虚拟环境中运行 python -V 将始终输出 3.6,而不管使用什么解释器来创建环境:

virtualenv venv --python=pythonX.X

j
jnnnnn

在窗户上:

py -3.4x32 -m venv venv34

或者

py -2.6.2 -m venv venv26

这将使用 py launcher 为您找到正确的 python 可执行文件(假设您已安装它)。


m
mattsmith5

我将这个答案用于 Windows

https://stackoverflow.com/a/22793687/15435022

py -3.4 -m venv c:\path\to\wherever\you\want\it

M
Marcin Rapacz

在 linux 的 windows 子系统中:

为python3创建环境:virtualenv --python=/usr/bin/python3 env 激活它:source env/bin/activate


b
brandonbanks

我使用 pyenv 来管理我的 python 版本。

pyenv install 3.7.3
pyenv local 3.7.3

检查你的python版本:

$ python --version
Python 3.7.3

使用 venv 创建虚拟环境:

python -m venv .

然后激活虚拟环境:

source bin/activate

检查你的python版本:

$ python --version
Python 3.7.3

您可能需要删除以前的虚拟环境

rm -rf bin

正如对另一个答案的评论中提到的那样:将提供的 pyenv-virtualenv 与 pyenv 一起使用会更容易(参见 realpython.com/intro-to-pyenv/#virtual-environments-and-pyenv
b
bluu

2020 年底:

使用 virtualenv 的最无缝体验(附加好处:使用任何可能的 python 版本)是使用 pyenv 及其(捆绑的)pyenv-virtualenv 插件(参见 https://realpython.com/intro-to-pyenv/#virtual-environments-and-pyenv

用法:pyenv virtualenv <python_version> <environment_name>

安装:

首先检查您是否具备所有先决条件(取决于您的操作系统):https://github.com/pyenv/pyenv/wiki/Common-build-problems#prerequisites

卷曲 https://pyenv.run |重击

执行 $SHELL

参照https://github.com/pyenv/pyenv-installer

话虽如此,现在最好的替代方法是使用 virtualenv(和 pip),而不是使用 Poetry(连同上面指出的 pyenv,以处理不同的 python 版本)。

另一种选择,因为它由 PyPA(pip 和 PyPI 背后的组织)直接支持,并且自 5 月底以来已重新开始发布(自 2018 年底以来未发布...)将是 Pipenv


A
AlphaSeekness

这适用于我在 Windows 10 中的使用,我有 Python 3.7 并希望在 Python 3.6.6 中为项目降级:

我使用“venv”创建了一个名为“venv”的新环境,我从 https://www.python.org/downloads/windows/ 下载; install "下载 Windows x86-64 可执行安装程序-" ;然后我在要创建环境的目录中使用了以下命令行

>C:\Users\...\Python\Python36\python.exe -m venv venv

最后,我使用命令行激活了环境:

>venv\Scripts\activate.bat

并通过调用检查 python 版本:

>python --version Python 3.6.6


L
Leigh Mathieson

在 Linux Ubuntu 21.04(目前是 Python 3.9.5)上,我需要获得 Python 3.7.8 的 virtualenv。开始工作的完整步骤:

找到您想要的 Python 版本源,例如 3.7.8 在这里:https://www.python.org/downloads/release/python-378/

下载 Gzipped 源代码压缩包

使用 tar zxvf Python-3.7.8.tgz 解压缩(如果与 3.7.8 不同,请根据需要使用您的版本号进行修改)

使用以下命令将解压缩的文件夹复制到 /usr/bin:sudo cp -r Python-3.7.8 /usr/bin

cd /usr/bin/Python-3.7.8/

如果您想查看目前拥有的内容,请查看内容:ls

sudo time ./configure
sudo time make
time sudo make install
time make clean

检查你的 python 是如何设置和报告的:

which python
python --version

应该与您的主要安装有关(对我来说是 Python 3.9.5)

要检查您的新安装:

which python 3.7
python3.7 --version

应该与您的 3.7.8 安装有关

如果要运行它进行检查,请执行以下操作:

python3.7
exit()

安装 venv:

sudo apt install venv

要创建一个 venv(可能在您的仓库中,如果有,请将 .venv 添加到 .gitignore):

python3.7 -m venv .venv

要激活您的 venv:

source .venv/bin/activate

检查您的版本:

python --version

为什么在配置和编译部分使用“时间”?在 README.rst 的 Build 指令中看不到任何这样的指令。
在将环境定位到特定版本的 python 时,为什么 venv 在易用性方面远远落后于 anaconda?
h
hygull

是的,上述答案是正确的,并且在基于 Unix 的系统(如 Linux 和 MAC OS X)上运行良好。

我尝试使用以下命令为 Python2 和 Python3 创建 virtualenv。

在这里,我分别使用 venv2 和 venv3 作为 Python2 和 Python3 的名称。

Python2 »

MacBook-Pro-2:~ admin$ virtualenv venv2 --python=`which python2`
Running virtualenv with interpreter /usr/local/bin/python2
New python executable in /Users/admin/venv2/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ ls venv2/bin/
activate        easy_install        pip2.7          python2.7
activate.csh        easy_install-2.7    python          wheel
activate.fish       pip         python-config
activate_this.py    pip2            python2
MacBook-Pro-2:~ admin$ 

Python3 »

MacBook-Pro-2:~ admin$ virtualenv venv3 --python=`which python3`
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/admin/venv3/bin/python3
Also creating executable in /Users/admin/venv3/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ ls venv3/bin/
activate        easy_install        pip3.6          python3.6
activate.csh        easy_install-3.6    python          wheel
activate.fish       pip         python-config
activate_this.py    pip3            python3
MacBook-Pro-2:~ admin$ 

检查 Python 安装位置

MacBook-Pro-2:~ admin$ which python2
/usr/local/bin/python2
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ which python3
/usr/local/bin/python3
MacBook-Pro-2:~ admin$ 

D
Dadaso Zanzane

它对我有用

sudo apt-get install python3-minimal

virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3

A
Aseem
virtualenv -p python3 myenv

Link to Creating virtualenv


M
Mohit

这是 virtualenv 的一个错误。只需升级您的点子就可以解决问题。

pip install --upgrade virtualenv


A
Aminah Nuraini

我使用 Windows,所以我应该在 pthon 路径上使用 .exe

virtualenv -p=C:\Python27\python2.exe <envname>