已复制
全屏展示
复制代码

Python 虚拟环境 virtualenv 与 virtualenvwrapper 总结


· 3 min read

一. 什么是虚拟环境

在刚接触 Python 时,当你的需要使用某个 Python 包的时候,直接使用 pip install 来安装包,这些安装的包都在同一个 Python 环境里面的,当我们安装的包太多太杂以后,我们 Python 环境就非常不稳定了,可能无法安装新的包,也可能安装新的包以后,旧的包无法导入运行了,为了解决这个问题,引入了虚拟环境的概念。

虚拟环境就是每个项目都单独使用一个隔离 Python 环境,每个项目自己的安装的包只在这个虚拟环境下有效,不会影响其他项目的。我们常用了两个工具来管理虚拟环境:virtualenv、virtualenvwrapper

二. virtualenv 安装使用

使用 pip 安装即可

$ pip install virtualenv

# 安装完成后,可能会有下面的提示,表示 virtualenv 的安装命令的目录不在 PATH 环境变量中
# 需要根据实际情况添加,比如我的提示如下:
WARNING: The script virtualenv is installed in '/home/yzy/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

# 添加环境变量 vim ~/.bashrc
export PATH=/home/yzy/.local/bin:$PATH

# 验证 virtualenv 命令
$ source ~/.bashrc
$ virtualenv --version
virtualenv 20.24.0 from /home/yzy/.local/lib/python3.10/site-packages/virtualenv/__init__.py

使用时只有四种场景:创建虚拟环境、激活虚拟环境、取消激活虚拟环境、删除虚拟环境。

virtualenv myvenv                        # 在当前目录使用 默认Python 创建myenv
virtualenv -p /usr/bin/python3.10 myvenv # 在当前目录使用 指定Python myvenv,当有多个版本Python时使用

source myvenv/bin/activate               # 激活指定的虚拟环境,这里是 myvenv
pip -V                                   # 激活后查看虚拟环境路径是否正确
pip install xxxx                         # 注意要在虚拟环境中安装
pip uninstall xxxx                       # 注意要在虚拟环境中卸载

deactivate                               # 在虚拟环境中的情况下,直接输入 deactivate 退出虚拟环境

rm -rf myvenv                            # 当不在需要时直接删除,不会影响其他环境

三. virtualenvwrapper 安装使用

virtualenv 其实已经满足了我们的需求使用独立的虚拟环境,但是在使用时有点麻烦,每次要找到虚拟环境的路径,然后使用 source 命令激活。

virtualenvwrapper 对 virtualenv 进行了包装,同时提供了一些更好用的其他功能。

# 安装时注意不要在虚拟环境里面安装
pip install virtualenvwrapper

# 创建虚拟环境目录:以后创建的虚拟环境某会在该目录下
mkdir $HOME/.virtualenvs

# 添加登录 session 启用 virtualenvwrapper
# 注意:VIRTUALENVWRAPPER_PYTHON 的值一定要和 pip3 是相对应的
vim ~/.bashrc

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.10
export VIRTUALENVWRAPPER_VIRTUALENV=~/.local/bin/virtualenv
source $HOME/.local/bin/virtualenvwrapper.sh

# 退出当前 shell 重新登录使 virtualenvwrapper 生效,或者 source
source ~/.bashrc

使用 virtualenvwrapper:创建、激活、取消激活、删除

mkvirtualenv myvenv                        # 在 ~/.virtualenvs 目录创建 myvenv 虚拟环境
mkvirtualenv -p /usr/bin/python3.10 myvenv # 创建指定版本的虚拟环境

workon                                     # 查看所有的虚拟环境
workon myvenv                              # 激活指定的虚拟环境 myvenv

rmvirtualenv myvenv                        # 删除指定的虚拟环境 myvenv,会删除虚拟环境目录

deactivate                                 # 同样使用 deactivate 退出虚拟环境

如何快速进入项目目录:每个虚拟环境都是针对单独的项目的,如果想在激活虚拟环境后自动进入项目目录,可以使用 cdproject 命令实现。

# 配置 hello_flask 项目使用 myvenv,且项目目录为 /home/yzy/hello_flask
echo "/home/yzy/hello_flask" > /home/yzy/.virtualenvs/myvenv/.project

# 然后进入 myvenv 虚拟环境就会自动进入 /home/yzy/hello_flask 目录了
workon myvenv

四. 阿里pip源

切换回国内阿里云的pip安装包源

# 换回国内源
vim ~/.pip/pip.conf 

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
🔗

文章推荐