工具特点一览:
不同的场景推荐使用不同的工具:
我的 Windows 环境和 Linux 环境都只有一个 python 版本
PS:查看本地全部 python 的位置:Windows 用 where python
Linux 用 whereis python2
和 whereis python3
# Windows cmd 运行
> python --version
Python 3.9.1
> pip --version
pip 20.3.1 from D:\Software\Miniconda\lib\site-packages\pip (python 3.9)
# Linux bash 运行
$ python3 --version
Python 3.10.4
$ pip --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
venv 在 python 3.3 版本及之后才能使用,且建立的虚拟环境的 python 版本与系统环境一致,不能修改!
如果你的系统含有多个 python 版本,那么可以指定版本建立虚拟环境(如 python3.6 -m ven .\temp_env
),不能指定系统中不存在的版本
因为 Windows 中 venv 已经以标准库的形式存在,不用再单独安装
而 Linux 可能会提示 apt install python3.x-venv
,运行该命令即可
成功创建后,虚拟环境文件夹包含以下文件:
# Windows
# 在当前目录下,创建独立环境(名字为 temp_env)
python -m venv .\temp_env
# 进入环境并启用
cd temp_env & .\Scripts\activate.bat
# 此时左边括号会显示(temp_env),代表成功进入虚拟环境中了
# 在虚拟环境中随意下载库,都不会影响外面的环境
pip install request
# 退出环境
deactivate
# 如果不需要该虚拟环境了,直接手动删除文件夹即可
# Linux
# 在当前目录下,创建独立环境(名字为 temp_env)
python3 -m venv ./temp_env
# 进入环境并启用
cd temp_env && source ./bin/activate
# 此时左边括号会显示(temp_env),代表成功进入虚拟环境中了
# 在虚拟环境中随意下载库,都不会影响外面的环境
pip install request
# 退出环境
deactivate
# 如果不需要该虚拟环境了,直接删除文件夹即可
rm -rf ./temp_env
virtualenv 可以看作是 venv 的增强版,不过早在 venv 出现之前,virtualenv 就算是最受欢迎的命令行环境管理工具了
如果 Linux 提示 sudo apt install python3-virtualenv
,运行该命令即可
virtualenv 的特点如下:
--system-site-packages
)# Windows
# 下载 virtualenv
pip install virtualenv
# 在当前目录下,创建独立环境(名字为 temp_env)
# python 版本可以指定本地系统中含有的
virtualenv -p python temp_env
# 如果要继承父环境的 pip 包
virtualenv -p python --system-site-packages temp_env
# 进入环境并启用
cd temp_env & .\Scripts\activate.bat
# 此时左边括号会显示(temp_env),代表成功进入虚拟环境中了
# 在虚拟环境中随意下载库,都不会影响外面的环境
pip install request
# 退出环境
deactivate
# 如果不需要该虚拟环境了,直接手动删除文件夹即可
# Linux
# 下载 virtualenv
pip install virtualenv
# 在当前目录下,创建独立环境(名字为 temp_env)
# python 版本可以指定本地系统中含有的
virtualenv -p python temp_env
# 如果要继承父环境的 pip 包
virtualenv -p python --system-site-packages temp_env
# 进入环境并启用
cd temp_env && source ./bin/activate
# 此时左边括号会显示(temp_env),代表成功进入虚拟环境中了
# 在虚拟环境中随意下载库,都不会影响外面的环境
pip install request
# 退出环境
deactivate
# 如果不需要该虚拟环境了,直接删除文件夹即可
rm -rf ./temp_env
virtualenvwrapper 又可以看作是 virtualen 的增强版
virtualenvwrapper 的特点如下:
# Windows
# 下载 virtualenvwrapper,要确保已经安装过了 virtualenv
pip install virtualenv
pip install virtualenvwrapper-win
# 修改虚拟文件夹的存放位置(默认是 C:\Users\Username\Envs)
# 打开“编辑系统环境变量” -> 环境变量 -> 新建系统变量 -> 变量名 WORKON_HOME -> 变量值 D:\XXX(修改的位置)
# 然后重新打开 cmd
# 创建独立环境(名字为 temp_env)并启用
# python 版本可以指定本地系统中含有的
mkvirtualenv --python=python temp_env
# 查看当前的虚拟环境目录(两个命令都行)
lsvirtualenv / workon
# 进入 / 切换虚拟环境
# 此处我另外创建了 temp_env2
workon temp_env2
# 在不同的虚拟环境中进行任意操作,对不会影响其他的虚拟环境和外面的环境,此处就不演示了
# 退出环境
deactivate
# 删除虚拟环境
rmvirtualenv temp_env
# Linux
# 下载 virtualenvwrapper,要确保已经安装过了 virtualenv
pip install virtualenv
pip install virtualenvwrapper
# 先修改相关配置
# 在 ~/.bashrc 或 ~/.zshrc 或其它环境变量相关文件中修改(一般默认是 ~/.bashrc)
nano ~/.bashrc
# 在最后一行添加以下三行内容
# 虚拟文件夹的存放位置(默认是 ~/.virtualenvs),此处我不做修改
export WORKON_HOME=$HOME/.virtualenvs
# 创建工作目录(使用 mkproject 时会用到,但一般用不到)
export PROJECT_HOME=$HOME/workspace
# 指定 python 版本的位置
# 如果不清楚位置的,可以另开一个 bash,输入 whereis python3 命令查看(一般是 /usr/bin/xxx)
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
# 输入完后按 Shift + x,再输入 y,点击回车即可
# 最后保存配置
source ~/.bashrc
# 然后重新打开 bash
# virtualenvwrapper 进行初始化
# 如果不清楚位置的,可以另开一个 bash,输入 whereis virtualenvwrapper.sh 命令查看(一般是 /usr/local/xxx)
source /usr/local/bin/virtualenvwrapper.sh
# 创建独立环境(名字为 temp_env)并启用
# python 版本可以指定本地系统中含有的
mkvirtualenv --python=python3 temp_env
# 查看当前的虚拟环境目录(两个命令都行)
lsvirtualenv / workon
# 进入 / 切换虚拟环境
# 此处我另外创建了 temp_env2
workon temp_env2
# 在不同的虚拟环境中进行任意操作,对不会影响其他的虚拟环境和外面的环境,此处就不演示了
# 退出环境
deactivate
# 删除虚拟环境
rmvirtualenv temp_env
官方描述:使用单行命令拥有 virtualenv + virtualenvwrapper 的环境
virtualenv-burrito 的特定如下:
virtualenv-burrito upgrade
一键更新 virtualenv + virtualenvwrapperPipenv 集成了 pip,virtualenv 两者的功能,且完善了两者的一些缺陷
pipenv 的特点如下:
# Windows
# 下载 pipenv
# 全局安装,如果只想在当前用户模式下安装,可添加参数 --user
pip install pipenv
# 创建虚拟环境
# 默认创建位置是 .\Envs\Temporary-xxx
# python 版本可以指定本地系统中含有的
pipenv --two # 使用当前系统中的 Python2 创建环境
pipenv --three # 使用当前系统中的 Python3 创建环境
pipenv --python 3 # 指定使用 Python3 创建环境
pipenv --python 3.6 # 指定使用 Python3.6 创建环境
pipenv --python 2.7.14 # 指定使用 Python2.7.14 创建环境
# 激活虚拟环境
pipenv shell
# 使用 python 运行文件
python xxx.py
# 退出虚拟环境
exit
# 删除虚拟环境
pipenv --rm
# 常用命令
pipenv --where # 显示目录信息
pipenv --venv # 显示虚拟环境信息
pipenv --py # 显示 Python 解释器信息
pipenv install XXX # 安装 XXX 模块并加入到 Pipfile
pipenv install XXX==1.11 # 安装固定版本的 XXX 模块并加入到 Pipfile
pipenv graph # 查看目前安装的库及其依赖
pipenv check # 检查安全漏洞
pipenv update --outdated # 查看所有需要更新的依赖项
pipenv update # 更新所有包的依赖项
pipenv update <包名> # 更新指定的包的依赖项
pipenv uninstall XXX # 卸载 XXX 模块并从 Pipfile 中移除
pipenv uninstall --all # 卸载全部包并从 Pipfile 中移除
pipenv uninstall --all-dev # 卸载全部开发包并从 Pipfile 中移除
pipenv lock -r > requirements.txt # 将 Pipfile 和 Pipfile.lock 文件里面的包导出为 requirements.txt 文件
pipenv lock -r --dev > requirements.txt # 将 Pipfile 和 Pipfile.lock 文件里面的开发包导出为 requirements.txt 文件
pipenv install -r requirements.txt
pipenv install -r --dev requirements.txt # 只安装开发包
pipx 相比于前面介绍的,属于是非常轻量级工具了
但它仅适用于可直接运行的应用程序,而不是专门为 python 服务的
pipx 的特点如下:
pipx run pycowsay moo
)C:\Users\Username\.local\pipx\venvs
/home/ubuntu/.local/pipx/venvs
# Windows / Linux
# 下载 pipx
pip install pipx
pipx ensurepath
# 然后重新打开 cmd / bash
pipx list # 查看所有已安装的应用
pipx install <pkn> # 下载特定应用
pipx uninstall <pkn> # 卸载特定应用
pipx upgrade <pkn> # 更新特定应用
pipx upgrade-all # 更新全部应用
pipx run pycowsay moooo # 直接运行某个库,不用下载
pipx run <website>.<pyn>.py # 直接运行网站上的 py 文件
官方描述:当您 cd 进入一个包含 .env 的目录中,就会 autoenv 自动激活那个环境
autoenv 的特点如下:
官方描述:Anaconda 是一个用于科学计算的 Python 发行版(但主要使用它管理 python 版本的功能)
Miniconda 是一个 Anaconda 的轻量级替代,默认只包含了 python 和 conda,但是可以通过 pip 和 conda 来安装所需要的包
anaconda / miniconda 的特点如下:
PS:软件下载与换源,参考清华大学开源软件镜像站的步骤,此处不做讲解
# Windows
# ----------- 使用 conda 创建 python 虚拟环境 -----------
# 使用的 python 版本 = 3.6 并命名环境名为 data
conda create -n data python=3.6
# 下载所需 python 库
# conda install -n data package_name
conda install -n data numpy
conda install -n data matplotlib==3.3.1
# 进入环境
conda activate data
# 清除缓存
# conda clean -i
# 卸载已有 python 库
# conda uninstall -n data package_name
# 更新已有 python 库
# conda upgrade -n data package_name
# ----------- 使用 conda 进行虚拟环境的调整 -----------
# 查看当前环境
conda info
# 查看全部环境
conda info --envs
# 检查并更新当前 conda
conda update conda
# 进入旧环境
conda activate old_name
# 克隆旧环境
conda create -n new_name --clone old_name
# 退出旧环境
conda deactivate
# 删除旧环境(最后记得删除旧环境的文件夹)
conda remove -n old_name --all
参考文章:廖雪峰【venv】
参考文章:Pipenv & 虚拟环境
参考文章:python多环境管理(venv与virtualenv)
参考文章:一文解读 virtualenv & venv & pipenv 之间的联系与区别
参考文章:Virtualenvwrapper使用和配置默认创建环境的路径(win10)
参考文章:pipenv 入门教程
参考文章:Pipx:在隔离环境中安装和运行 Python 应用
参考文章:Windows Terminal
参考文章:清华大学开源软件镜像站