Python虚拟环境 pyvenv virtualenv

什么是Python虚拟环境?

Python虚拟环境可以为项目创建相互独立的开发环境,也就是你可以为每个项目安装各自使用依赖模块。

使用虚拟环境可以很好的解决上面A、B项目遇到的问题:为A、B项目分别创建虚拟环境,然后在各自的虚拟环境中安装不同的tensorflow版本。

使用虚拟环境需要借助virtualenv或pyvenv,它们的使用非常简单。

安装virtualenv、pyvenv

如果你使用Python 2,你可以使用pip安装virtualenv:

$ sudo pip install virtualenv

如果你使用Python 3,它默认安装了pyvenv。

virtualenv和pyvenv的使用方法类似。由于pyvenv是较新的工具,本帖以它为例。

创建一个存放虚拟环境的目录:

$ mkdir python-env
$ cd python-env

创建一个虚拟环境:

$ pyvenv env_A

上面命令在当前目录创建了env_A目录,目录结构:

├── bin
│   ├── activate
│   ├── activate.csh
│   ├── activate.fish
│   ├── easy_install
│   ├── easy_install-3.5
│   ├── pip
│   ├── pip3
│   ├── pip3.5
│   ├── python -> python3.5
│   ├── python3 -> python3.5
│   └── python3.5 -> /opt/local/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5
├── include
├── lib
│   └── python3.5
│       └── site-packages
└── pyvenv.cfg

使用创建的虚拟环境env_A:

$ source env/bin/activate

提示符中包含:

(env_A) $

现在你通过pip安装的包都会安装这个虚拟环境中;导入(import)模块时也只能使用这个虚拟环境中的模块。

如果要退出env_A虚拟环境,执行:

(env_A) $ deactivate

虚拟环境的工作原理

主要就是操作环境变量。

Python在非虚拟环境下的路径:

$ which python
/usr/bin/python

激活虚拟环境再次查看Python路径:

$ source env/bin/activate
(env) $ which python
/Users/snail/python-env/env_A/bin/python

$PATH 环境变量在激活前后不一样了:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:

$ source env/bin/activate
(env) $ echo $PATH
/Users/snail/python-env/env_A/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:
posted @ 2020-07-28 16:41  liuxianglong  阅读(532)  评论(0编辑  收藏  举报