Python 虚拟环境 virtualenv 与 virtualenvwrapper 总结
一. 什么是虚拟环境
在刚接触 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