virtualenv
简介
这是一个虚拟环境管理器,它可以让你每个项目甚至每个脚本配置一个自定义的Python解释器环境。
这最大的好处是我可以不污染开发环境,使得不同Python应用的开发环境相互独立。某个项目/应用开发环境升级不影响其他应用的开发环境,也不会影响全局的环境,因为虚拟环境是将全局环境进行私有的复制。
当我在虚拟环境进行 pip install 时,只会安装到选择的虚拟环境中。
使用方法
在pycharm打开项目文件夹的终端里
# 安装virtualenv,若之前安装过,则不用安装。
pip3 install virtualenv
# 创建一个独立的python运行环境:myenv
# 参数:--no-site-packages (可省略) 其意义在于不复制已经安装到系统Python环境中的所有第三方包从而得到一个“纯净”的运行环境。
# 此时当前目录下会生成一个名为:“myenv” 的目录,该目录中存放刚生成的虚拟环境文件,譬如第三方包等。
virtualenv --no-site-packages myenv
# 激活虚拟环境
# Windows:
myenv\Scripts\activate.bat
# Linux:
source myenv/bin/activate
# 以上命令执行完后会发现命令提示符变了,有个(myenv)前缀,表示当前环境是一个名为“myenv”的Python环境,此时可以在该环境中按照我们熟悉的方式安装库、运行程序等。而且可以直接使用虚拟环境中的pip和python命令即可,不用再使用自己的pip3、python3等。
# 使用deactivate命令退出当前的myenv环境
deactivate
venv
简介
Python 从3.3 版本开始,自带了一个虚拟环境 venv。它的很多操作都和 virtualenv 类似,但是两者运行机制不同。因为是从 3.3 版本开始自带的,这个工具也仅仅支持 python 3.3 和以后版本。所以,要在 python2 上使用虚拟环境,依然要利用 virtualenv 。
使用
# Windows 中venv已经以标准库的形式存在,不用再单独安装
# Linux
sudo apt-get install python3-venv # 如有不同版本的Python3,可指定具体版本venv:python3.5-venv
# 在当前目录创建一个独立的Python运行环境: myenv
# Windows
py -3 -m venv myenv
# Linux
python3 -m venv myenv
# 激活虚拟运行环境、安装第三方包、运行程序及退出虚拟环境等操作均与 virtualenv 相同,在此不再赘述。
pip
pip 是 Python 最常用的包管理器,它能自动处理依赖 。
conda
如果说venv是虚拟环境管理器,pip是包管理器,那么conda则是两者的结合。
anaconda
Anaconda 是一个基于 Conda 的 Python 发行版,他与conda区别的是,他主要面向数据科学、机器学习和科学计算领域,提供了广泛的数据处理、分析和可视化工具。譬如他提供了 Anaconda Navigator,一个可视化的界面,用于管理环境、安装软件包和启动应用程序。
Miniconda
它是Anaconda的无界面和预装包的版本。
venv和conda的区别
- conda虚拟环境是独立于主环境的,venv不独立。
意思是无论操作系统解释器(就是主环境,或者说本机python环境)什么版本,哪怕2.7,我也可以指定conda的python版本为3.10,甚至本机不安装python,只安装了conda,我也可以用python3.10。而venv是依赖主环境的,如果本机装的是py2.7,那么久不可能使用py3.10。 - 包重复问题
使用venv的话,会在项目的文件夹(或者当时创建项目时指定的文件夹)下创建一个单独的venv文件夹,这个文件夹里会有项目所有需要的包,即使主环境中已经有这个包了。然而conda每个虚拟环境都固定创建在用户设定的一个位置,这使得多个项目共享一个虚拟环境更加方便。
conda中的包管理和pip的区别
- conda的包管理器做的一般,且会安装过多依赖。所以我们大部分情况下还是使用pip安装包。
- 但pip只能安装Python的包,conda还可以安装一些不是Python开发的软件或工具。
- conda提供了图形化环境,也就是anaconda,这里面集成了jupyter notebook等工具。
- conda能多线程下载,pip只能单线程,下一些比较大的工具时差别比较明显。
删除venv的环境
可以打开pycharm,使用venv创建项目,看位置一般默认创建在哪,然后删掉。
在这里本人以前年少不懂事,以为这个位置是解释器的位置,就没有更改过,然后在C盘的用户目录下创建了很多个项目(
全部删掉!
删除多余的python环境
注意以下列出的法一和法二最好都尝试一遍。而且先尝试法一,不然法二尝试了后,法一可能无法删除
法一:使用控制面板删除
法二:命令行查询python环境位置后手动删除
可能有些人因为没有安装conda,导致要用不同版本的python时,在本机上安装了很多个python环境,譬如本人(
而且本人之后准备全部使用conda,所以准备将所有python环境都删掉。于是可以在终端上执行
在 Windows 上:where python
在 macOS 或 Linux 上:which python