系统环境:
Windows 10 专业版 64bit
Anaconda 3, python 3.7.6
问题描述:
在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip
安装到Python3的site-packages
目录下。
如果我们要同时开发多个应用程序,例如:使用不同版本的Django来开发不同的Django项目,或者使用不同的Python版本来开发不同的项目,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?
这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。
问题解决:
1、首先,我们用pip
安装virtualenv:
pip install virtualenv
2、使用virtualenv创建一套独立的Python运行虚拟环境:
(1)打开命令行工具,cd到你想存放虚拟环境的文件夹路径,创建存放虚拟环境的文件夹:
mkdir .virtualenvs
.virtualenvs文件夹存放的路径可以由你自己决定,但是要确保避免误删,可以考虑放在C盘(系统盘)中。
(2)cd进入.virtualenvs文件夹,创建python虚拟环境:
virtualenv -p=python3.7.6 venv_name
如果你的电脑系统中装了多个版本的Python,你可以通过-p=python3.7.6来指定使用哪个版本的Python来创建虚拟环境。
venv_name为你虚拟环境的名称,这个由你自己决定,不同项目的虚拟环境就是通过这个名称venv_name来进行区分的。
经过步骤(2),你就可以看到.virtualenvs文件夹下多了一个venv_name目录,该目录下装的就是刚才创建的Python虚拟环境。
(3)激活该Python虚拟环境,cd进入到venv_name\Scripts文件夹,运行:
activate
这时候,你可以看到命令行前面多了 (venv_name) ,代表venv_name这个python虚拟环境已经激活。
(4)这时候,你就可以使用pip来安装package到当前这个Python虚拟环境下了。如:安装Django 1.11的最新版:
pip install django~=1.11
(5)那如何使用该Python虚拟环境呢?如:使用Django 1.11来创建Django工程,在上面的命令行中(要确保该Python虚拟环境已经激活,即前面有显示(venv_name)),运行:
django-admin startproject project_name project_path
project_name :该Django工程的名称;project_path:该Django工程保存的路径
(6)若是要调用Django的manage.py文件来创建应用,就要cd到manage.py所在的目录,运行:
python manage.py startapp app_name
app_name:该应用的名称
(7)对于Python虚拟环境的其他使用,可以参考以上对Django的使用示例。
(8)你也可以把上面创建好的Python虚拟环境添加到Pycharm等IDE软件中,这样你在Pycharm上面运行代码,就可以使用上面创建好的Python虚拟环境了。
总而言之, virtualenv模块就是在你的电脑中创建了一个新的Python环境,也就是可以理解为复制了一份你电脑原来安装的python环境(即python的版本跟原来的一样),只是这个新的Python环境没有复制其他的第三方python package。
你可以在该命令行下,运行:
pip list
可以看到只安装了:
pip 20.1.1
setuptools 46.4.0
wheel 0.34.2
这三个package (这里可能你的电脑显示的是其他的package)。