我目前使用python 2.5.4运行Debian系统。我得到了virtualenv正确安装,一切正常。我是否有可能使用不同版本的Python的virtualenv?
我编译了Python 2.6.2并希望将它与一些virtualenv一起使用。是否足以覆盖二进制文件?或者我是否必须更改库中的某些内容?
答案 0 :(得分:1348)
在创建virtualenv实例时,只需使用--python
(或简短-p
)选项来指定要使用的Python可执行文件,例如:
virtualenv --python=/usr/bin/python2.6 <path/to/new/virtualenv/>
N.B。对于 Python 3.3 或更高版本,请参阅下面的Aelfinn answer。
答案 1 :(得分:197)
更新:对于Python3.6,不推荐使用以下pyvenv
脚本。代替,
the Python Docs suggest使用以下命令创建虚拟环境:
python3 -m venv <myenvname>
对于python3(3.3+),请使用上述方法或script pyvenv
命令。
pyvenv /path/to/new/virtual/environment
请注意venv
不允许使用其他版本的Python创建virtualenv。为此,请安装并使用virtualenv
package。
答案 2 :(得分:173)
当您使用共享托管环境并需要安装&amp;从源代码编译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
当然,这适用于您希望复制您工作和部署的确切环境的任何情况。
答案 3 :(得分:96)
virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>
答案 4 :(得分:79)
有一种更简单的方法,
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`
答案 5 :(得分:67)
在Windows下对我来说,这有效:
virtualenv --python=c:\Python25\python.exe envname
没有python.exe
我得到WindowsError: [Error 5] Access is denied
我用virtualenv 1.6.1安装了Python2.7.1,我想要python 2.5.2。
答案 6 :(得分:29)
Mac OSX 10.6.8(Snow Leopard):
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版本。但是,您可以指定计算机上安装的任何版本的python,以便在-p flag
的新环境中使用:
$ 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)我安装的各种蟒蛇的名称都是python2.7
或python3.2
,我可以使用这些名称而不是完整路径。
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环境变量指定的位置创建环境。这可以将您的所有环境保存在一个地方。
答案 7 :(得分:20)
假设您目前在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
以检查您的版本是否现在已更新。
答案 8 :(得分:15)
这两个命令对于新手来说应该可以正常工作
virtualenv -p python2 myenv
(对于python2)
virtualenv -p python3 myenv
(对于python3)
答案 9 :(得分:10)
您可以使用所需的python版本调用virtualenv
。例如:
python3 -m virtualenv venv
或者直接指向你的virtualenv路径。例如对于Windows:
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版本
答案 10 :(得分:9)
-p
方法运行良好,但您必须记住每次都使用它。如果您的目标是通常切换到较新版本的Python,那将是一种痛苦,也可能导致错误。
您的另一个选择是设置一个与-p
完全相同的环境变量。通过您的~/.bashrc
文件或管理登录会话的环境变量的任何位置设置此项:
export VIRTUALENV_PYTHON=/path/to/desired/version
然后virtualenv
将在命令行上未指定-p
的任何时候使用它。
答案 11 :(得分:8)
对于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
答案 12 :(得分:6)
通过使用命令替换为您找到python2更加容易:
virtualenv -p $(which python2) <path/to/new/virtualenv/>
或者在使用virtualenvwrapper时:
mkvirtualenv -p $(which python2) <env_name>
答案 13 :(得分:6)
在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
答案 14 :(得分:4)
为python3创建环境:
virtualenv --python=/usr/bin/python3 env
激活它:
source env/bin/activate
答案 15 :(得分:4)
您应该安装了该 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的,您可以将其更改为具有不同版本的虚拟环境,因为它们已安装在您的计算机中。
答案 16 :(得分:3)
对于Windows,这些似乎有些复杂。如果您使用的是运行python 3.3或更高版本的Windows,则可以使用python启动器py
更轻松地执行此操作。只需安装不同的python版本,然后运行:
py -[my version] -m venv env
这将使用python env
在当前目录中创建一个名为[my version]
的虚拟环境。例如:
py -3.7 -m venv env
./env/Scripts/activate
这将使用python3.7创建一个名为env
的虚拟环境并将其激活。不需要路径或其他复杂的东西。
答案 17 :(得分:3)
是,上述答案是正确的,适用于基于Unix的系统,如 Linux &amp; MAC OS X 。
我尝试为 Python2 &amp;创建 virtualenv Python3 ,包含以下命令。
我在这里使用了 venv2 &amp; venv3 作为 Python2 &amp;的名称 Python3 。
Python2»
Message::Message(char * ptr, size_t nBytes)
: m_nBytes(nBytes), m_msg(nBytes?new char[nBytes]:nullptr)
{
if(ptr)
{
assert(nBytes);
memcpy(m_msg.get(), ptr, nBytes)
}
}
Message::Message::Message(size_t nBytes)
: Message(nullptr, m_nBytes)
{}
Message::Message(Message const & other)
: Message(other.m_msg.get(), other.m_nBytes)
{}
Python3»
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$
检查Python安装位置
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$
答案 18 :(得分:3)
这适用于我在 Windows 10 中的使用,其中我有 Python 3.7 并且想要降级 Python 3.6.6 中的项目:
我使用“venv”创建了一个名为“venv”的新环境,我从 https://www.python.org/downloads/windows/ 下载;安装“下载 Windows x86-64 可执行安装程序-”;然后我在我要创建环境的目录中使用了以下命令行
>C:\Users\...\Python\Python36\python.exe -m venv venv
最后,我使用命令行激活了环境:
>venv\Scripts\activate.bat
并通过调用检查python版本:
>python --version
Python 3.6.6
答案 19 :(得分:2)
正如在多个答案中已经提到的那样,使用 virtualenv 是一个干净的解决方案。但是,每个人都应该意识到的一个小陷阱是,如果在 bash_aliases 中设置了python的别名,例如:
python=python3.6
此别名也将在虚拟环境中使用。因此,在这种情况下,在虚拟环境中运行python -V
始终将输出3.6
,无论使用什么解释器来创建环境:
virtualenv venv --python=pythonX.X
答案 20 :(得分:2)
在Windows上:
py -3.4x32 -m venv venv34
或
py -2.6.2 -m venv venv26
这使用py
launcher,它会为你找到合适的python可执行文件(假设你安装了它)。
答案 21 :(得分:2)
这对我有用
sudo apt-get install python3-minimal
virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3
答案 22 :(得分:1)
这是virtualenv的错误。 只需升级您的点子即可解决问题。
pip install --upgrade virtualenv
答案 23 :(得分:1)
对于2019年的Debian(debian 9)系统,我发现了一个简单的解决方案,可以从虚拟环境中解决问题。
假设虚拟环境是通过以下方式创建的:
python3.7 -m venv myenv
,但仅具有python2
和python2.7
的版本,并且您需要python3.7的最新功能。
然后,只需运行命令:
(myvenv) $ python3.7 -m venv --upgrade /home/username/path/to/myvenv/
将添加python3.7软件包(如果您的系统上已经可用)。
答案 24 :(得分:1)
virtualenv -p python3 myenv
答案 25 :(得分:1)
2020年底:
使用virtualenv(增加的好处:使用任何可能的python版本)最无缝的体验是使用pyenv及其(捆绑的)pyenv-virtualenv插件(参见{https://realpython.com/intro-to-pyenv/#virtual-environments-and-pyenv)
用法:pyenv virtualenv <python_version> <environment_name>
安装:
curl https://pyenv.run | bash
exec $SHELL
cf https://github.com/pyenv/pyenv-installer
话虽如此,如今最好的替代方法是使用Poetry(以及上面指出的virtualenv
而不是使用pip
(和pyenv
)来处理不同的python版本)。
另一种选择,因为它直接受到PyPA(pip
和PyPI背后的组织)的支持,并且从5月底开始重新发布(自2018年底以来一直没有发布...)将是Pipenv
答案 26 :(得分:1)
[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.tldp.org/HOWTO/html_single/Glibc-Install-HOWTO/
然后我将该存档(源文件)提取到
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz
安装:
[注意:在我的系统中是env,不是venv。]
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
检查已安装的Python版本:
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版本创建venv:
https://docs.python.org/3/tutorial/venv.html
12.2。创建虚拟环境
用于创建和管理虚拟环境的模块称为
$ 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
。venv
通常会安装可用的最新版本的Python。如果您的系统上有多个Python版本,则可以通过运行python3或所需的任何版本来选择特定的Python版本。要创建虚拟环境,请确定要放置虚拟目录的目录,并使用带有目录路径的脚本运行venv模块:
venv
这将创建
python3 -m venv tutorial-env
目录(如果不存在),并在其中创建包含Python解释器副本,标准库和各种支持文件的目录。 ...
[在Python 3.8操作系统/系统上]创建Python 3.7 venv:
tutorial-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
:
~/.bashrc
测试Python 3.7 venv:
alias p37='echo " [Python 3.7 venv (source ~/venv/py3.7/bin/activate)]" && source ~/venv/py3.7/bin/activate'
答案 27 :(得分:0)
我在 Windows 上使用了这个答案
https://stackoverflow.com/a/22793687/15435022
py -3.4 -m venv c:\path\to\wherever\you\want\it
答案 28 :(得分:0)
令人惊讶的是,到目前为止没有人提到conda
。我发现这比这里提到的其他方法简单得多。假设我有python 3.9和python 2.7,而我正在处理的项目是python 3.5.4,我可以简单地使用conda命令为3.5.4创建隔离的虚拟环境,而无需下载其他任何东西。
要首先查看可用的python版本列表,请使用命令
conda search "^python$"
要为python版本x.y.z创建虚拟环境,请使用命令
conda create -n yourenvname python=x.y.z
使用激活
conda activate yourenvname
停用
conda deactivate
要在完成后删除虚拟环境,请使用命令
conda remove -n yourenvname --all
答案 29 :(得分:0)
在 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 源 tarball
用 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
答案 30 :(得分:0)
我使用Windows,因此我应该在pthon路径上使用.exe
virtualenv -p=C:\Python27\python2.exe <envname>
答案 31 :(得分:0)
这是如何在Visual Studio Code文件夹中创建虚拟环境的分步指南:
我使用了Powershell(管理员模式):
1.我创建一个VSCode文件夹-“ D:\ Code_Python_VE”,在其中创建虚拟环境。
2.接下来,我键入命令-“ pip3 install virtualenv”。 (D:\ Code_Python_VE> pip3安装virtualenv)
3. D:\ Code_Python_VE> python3 -m venv project_env
4. D:\ Code_Python_VE> project_env \ Scripts \ activate.bat
5. D:\ Code_Python_VE> ls-这将列出一个新目录“ project_env”。
6. D:\ Code_Python_VE>代码。这将启动Visual Studio代码。确保命令是(code。)。
7.创建具有以下内容的launch.jason:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "python",
"request": "launch",
"name": "Python: Current File (Integrated Terminal 1)",
"program": "${file}"
},
{
"name": "Python: Current File (Integrated Terminal 2)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
]
}
(请搜索如何转到“调试”窗口并在VS Code中添加新配置)。
答案 32 :(得分:0)
您可以这样做:
virtualenv -p python3 .
答案 33 :(得分:0)
我使用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
答案 34 :(得分:0)
是的,您只需要安装其他版本的python,并在命令中定义其他版本的python的位置即可,例如:
virtualenv / home / payroll / Documents / env -p / usr / bin / python3
答案 35 :(得分:0)
它在安装了python 2的Windows上对我有用:
这是我在现有的python 2安装上创建Python 3虚拟环境的方式。
答案 36 :(得分:-1)
UBUNTU 19.04 / Global Python 3.7。
这对我有用,它使用推荐的venv进行python 3开发,从而启用了python 3.8环境。
$ sudo apt install python3.8 python3.8-venv ##以及您需要的任何其他模块
$ /usr/bin/python3.8 -m venv python38-env
$ source python38-env / bin / activate
python -V = python 3.8