文章目录
首先弄明白为啥要有虚拟环境?
当手上项目越来越多,项目依赖就会存在 问题,不同的版本 是否能够兼容 。这个时候就需要在不同的项目上使用不同的python 某些库 不同的版本。 这样的话,如果 有两个 项目 同时使用一个 python的环境。那么 这两个项目 使用相同的包,但是版本 却不同 ,这个时候 怎么办?
这个 时候 就需要 为每个项目 创建不同的环境,这样就可以实现环境的隔离。 就是 在不同的项目里面 使用不同的版本的package。
使用 virtualenv 创建虚拟环境
1 创建虚拟环境
创建虚拟环境
# 安装virtualenv
pip install virtualenv
cd your_project
# venv为虚拟环境目录名,目录名自定义
virtualenv venv
1-1. 补充 创建 虚拟 环境有一些选项
-p or --python 这个选项用来指定解释器的位置 , 如果 本地装了多个python 版本,要用这个指定一下 用哪个解释器来生成虚拟环境。
我本地环境里面有两个 python 版本
$ ll /c/Software/python37/python
-rwxr-xr-x 1 changfx 1049089 99856 Jul 8 20:36 /c/Software/python37/python*
$ ll /c/Software/python36/python
-rwxr-xr-x 1 changfx 1049089 99856 Dec 24 2018 /c/Software/python36/python*
virtualenv -p /c/Software/python37/python venv37
virtualenv -p /c/Software/python36/python venv
1-2 激活虚拟环境
# 激活虚拟环境
# mac,linux 环境
source venv/bin/activate
# windows 环境
source venv/Scripts/activate
1-3 退出虚拟环境
# 退出虚拟环境
deactivate
使用 python -m 来生成 虚拟环境
$ python -m venv venv-test
这里 会在当前目录生成一个 venv-test 的 虚拟环境 , python 可以指定一个绝对路径,这样就可以 根据 这个python 的版本 来生成对应 版本的虚拟环境。
在python 3.3 之后 有一个模块 专门 用来生成 虚拟 环境
venv 来生成 虚拟环境 https://docs.python.org/zh-cn/3/library/venv.html#venv-def
3.3 新版功能.
源码: Lib/venv/
查看 帮助信息
python -m venv -h
2 使用方法
python -m venv /path/to/new/virtual/environment
python -m venv /path/to/new/virtual/environment
2-1 创建 python3.6 的虚拟环境
# 创建虚拟环境
python -m venv venv-test
$ source venv-test/Scripts/activate
(venv-test)
changfx@LNGSHAL-275 MINGW64 ~/myproject
$ python --version
Python 3.6.8
(venv-test)
# 推出虚拟环境
changfx@LNGSHAL-275 MINGW64 ~/myproject
$ deactivate
2-2 创建 python3.7 的虚拟环境
这里 创建 python37 的虚拟环境
$ /c/Software/python37/python -m venv venv-37
changfx@LNGSHAL-275 MINGW64 ~/myproject
$ ll
total 0
drwxr-xr-x 1 changfx 1049089 0 Sep 27 09:20 venv-37/
drwxr-xr-x 1 changfx 1049089 0 Sep 27 09:17 venv-test/
changfx@LNGSHAL-275 MINGW64 ~/myproject
# 激活虚拟环境 Windows
$ source venv-37/Scripts/activate
(venv-37)
changfx@LNGSHAL-275 MINGW64 ~/myproject
$ python --version
Python 3.7.4
(venv-37)
changfx@LNGSHAL-275 MINGW64 ~/myproject
$ deactivate
总结
python 的虚拟环境 其实有很多,各种虚拟环境 。 官方 推荐就是 使用 lib/venv 这个模块 来生成的python 虚拟环境 。 当然 第三方 也有 很多方案。比如 conda , pipenv ,pyenv ,poetry 等等。 pyenv 就不要用了。
引用官方的一句 话:
3.6 版后已移除: pyvenv
是 Python 3.3 和 3.4 中创建虚拟环境的推荐工具,不过 在 Python 3.6 中已弃用。
工具本身 没有任何错误 ,大家觉得 用的顺手就可以了。 我不推荐 任何 虚拟环境,大家根据喜好 自行选择 。