Windows10用Python 3.4自带的venv模块创建虚拟环境

实际应用中我们会安装很多版本的Python解释器。同样,我们也有可能因为各种原因,需要不同版本的模块,比如Django1.8,Django1.11。再加上pip工具管理器的版本混乱问题。这就使得很多人在Python的环境管理上产生极大的混乱。

通常每个项目,甚至项目不同阶段的版本,需要不同的Python解释器和依赖库。为了清晰明了,安全可靠的管理这些环境,需要为每个项目或每个应用各自建立一套“独立、隔离”的Python运行环境。

venv就是用来为每一个项目创建一套“独立隔离”的Python运行环境的工具。

在Python3.4之前,virtualenv需要独立手动安装后,方可执行。之后的版本中,Python自带了一个venv库,执行Python –m venv就可以达到与virtalenv同样的效果。本文记录如何用自带的venv库创建虚拟环境。

核心要点是:

  • 一个操作系统下,可以有多个“操作系统级别的”Python解释器;
  • 每个Python解释器有一个指向自己的pip工具,两者一一对应;
  • 通过venv可以虚拟任何一个“操作系统级别的”Python解释器成为一个“虚拟级别”的解释器;
  • 每个“虚拟级别”的解释器又拥有自己独立的pip工具和site-packages

1、创建一个虚拟环境:

C:\Users\Administrator>e:
E:\>
E:\>mkdir  myvenv
E:\>cd myvenv
E:\myvenv>python -m venv dailyfresh

先创建一个文件夹,在文件夹中创建一个dailyfresh虚拟环境。

执行后会生成一个名为dailyfresh目录

E:\myvenv>dir
 驱动器 E 中的卷没有标签。
 卷的序列号是 0000-3156

 E:\myvenv 的目录

2019/03/29  20:24              .
2019/03/29  20:24              ..
2019/03/29  20:24              dailyfresh
               0 个文件              0 字节

目录下面的结构

 E:\myvenv\dailyfresh 的目录

2019/03/29  20:24              .
2019/03/29  20:24              ..
2019/03/29  20:24              Include
2019/03/29  20:24              Lib
2019/03/29  20:24                82 pyvenv.cfg
2019/03/29  20:24              Scripts
               1 个文件             82 字节

2、启用虚拟环境:

E:\myvenv\dailyfresh>Scripts\activate.bat
(dailyfresh) E:\myvenv\dailyfresh>

执行那个Scripts目录下面的activate.bat文件,启用后,提示符前面会出现虚拟环境的名字(dailyfresh)。

3、用pip给虚拟环境安装模块:

pip list查看已安装模块,目前看到只有两个Python自带的模块

(dailyfresh) E:\myvenv\dailyfresh>pip list
Package    Version
---------- -------
pip        10.0.1
setuptools 39.0.1
You are using pip version 10.0.1, however version 19.0.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

提示pip有新版本,按提示用'python -m pip install --upgrade pip'命令更新就好了。

在虚拟环境里,千万别用'pip install --upgrade pip'更新pip,这会破坏pip。

现在,给虚拟环境安装django试试:

win+r,调出cmd,运行命令:pip install django,自动安装PyPi提供的最新版本。

如果要指定版本,可使用pip install django==1.11这种形式。安装过程如下:

(dailyfresh) E:\myvenv\dailyfresh>pip install django==1.11
Collecting django==1.11
  Using cached https://files.pythonhosted.org/packages/47/a6/078ebcbd49b19e22fd560a2348cfc5cec9e5dcfe3c4fad8e64c9865135bb/Django-1.11-py2.py3-none-any.whl
Collecting pytz (from django==1.11)
  Using cached https://files.pythonhosted.org/packages/61/28/1d3920e4d1d50b19bc5d24398a7cd85cc7b9a75a490570d5a30c57622d34/pytz-2018.9-py2.py3-none-any.whl
Installing collected packages: pytz, django
Successfully installed django-1.11 pytz-2018.9
You are using pip version 10.0.1, however version 19.0.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

安装完成后会提示成功安装。

  • 查看版本:进入python shell,运行如下代码
import django
django.get_version()

(fresh) E:\myvenv\fresh>python
Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.get_version()
'1.11

  • 说明:使用pip install django命令进行安装时,会自动删除旧版本,再安装新版本

4、退出虚拟环境:

(dailyfresh) E:\myvenv\dailyfresh>Scripts\deactivate.bat
E:\myvenv\dailyfresh>

执行那个Scripts目录下面的deactivate.bat文件,退出后,提示符前面虚拟环境的名字(dailyfresh)会消失。

你可能感兴趣的:(pyhon)