如何为指定版本的Python创建虚拟环境?
当前回答
您应该安装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,然后从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
当然,这可以适用于任何您想要复制您工作和部署的环境的情况。
这些对于Windows来说似乎有点过于复杂。如果您在运行python 3.3或更高版本的Windows上,可以使用python启动器py更轻松地执行此操作。只需安装不同的python版本,然后运行:
py -[my version] -m venv env
这将使用python[我的版本]在当前目录中创建一个名为env的虚拟环境。例如:
py -3.7 -m venv env
./env/Scripts/activate
这将使用python3.7创建一个名为env的虚拟环境并激活它。不需要路径或其他复杂的东西。
从Python 3开始,文档建议使用以下方法创建虚拟环境:
python3 -m venv "my_env_name"
请注意,venv不允许使用其他版本的Python创建虚拟环境。为此,请安装并使用virtualenv包。
过时的信息
pyvenv脚本可用于创建虚拟环境:
pyvenv "/path/to/new/virtual/environment"
自Python 3.6以来已弃用。
您可以使用所需的python版本调用virtualenv。例如:
python3 -m virtualenv venv
或者直接指向虚拟路径。例如,对于窗口:
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版本
-p方法运行良好,但您必须记住每次都使用它。如果您的目标是切换到较新版本的Python,这是一个痛苦,也可能导致错误。
您的另一个选项是设置一个环境变量,该变量的作用与-p相同。通过~/.bashrc文件或管理登录会话的环境变量的任何位置设置:
export VIRTUALENV_PYTHON=/path/to/desired/version
然后,每当您不在命令行上指定-p时,virtualenv就会使用它。
推荐文章
- 使用python创建一个简单的XML文件
- APT命令行界面式的yes/no输入?
- 如何打印出状态栏和百分比?
- 在Python中获取大文件的MD5哈希值
- 在Python格式字符串中%s是什么意思?
- 如何循环通过所有但最后一项的列表?
- python用什么方法避免默认参数为空列表?
- ValueError: numpy。Ndarray大小改变,可能表示二进制不兼容。期望从C头得到88,从PyObject得到80
- Anaconda /conda -安装特定的软件包版本
- 我在哪里调用Keras的BatchNormalization函数?
- 打印测试执行时间并使用py.test锁定缓慢的测试
- 插入一行到熊猫数据框架
- 要列出Pandas DataFrame列
- 在Django模型中存储电话号码的最佳方法是什么?
- 从导入的模块中模拟函数