@转载
想要一个Python环境。只需要安装Anaconda + Pycharm即可
原生的Python环境和Anaconda环境会有冲突。
原生Python的 python
pip
是放到用户环境变量。
但是Anaconda也有这些命令。
Anaconda的 python
conda
pip
安装时是直接放到系统环境变量。
这里说一下环境变量。在命令行里我们要运行一个可执行xxx.exe程序,最常用的做法就是切换到这个程序所在的文件目录,键入 xxx就执行了。这样很麻烦,若我们将这个程序所在的文件目录直接放到环境变量里,不论在那个文件目录下,我们都可以键入xxx即可运行。
在Anaconda 和 原生Python之间现在出现了命令冲突。你运行python
pip
,操作系统怎么分辨这是哪位大爷的程序?
答案是系统环境变量优于用户环境变量。
二喜运行python
pip
的这些命令都是Anaconda里的。
原生Python这下就遭殃了。python
pip
这些重要的命令用不出来,它就很麻烦。而且匹配pycharm的时候,用原生python创建虚拟环境就会出现创不出来的情况。虚拟环境只能匹配原生的一切配置用到所谓的虚拟环境了。这已经不是虚拟了。
这时你试一试用Anaconda的解释器去配虚拟环境。同样是解释器,Anaconda却能正常的创建虚拟环境。
因此原生Python就失去了用物之地。很多人就蒙了,认为没有原生python就有IDLE执行程序。
我们先说说原生python的特点,体积小巧,可以执行python程序(python.exe)的功能,一个pip。最重要的是有一个自带的IDLE。绝大多数人最初编写的程序都通过它运行。大家可以在这里确认一些语法和算法问题,很方便。
可我们看看Anaconda。
安装上不生不响,虽然有一个jupyter可以使用类似IDLE的功能,但真的不太顺手。Anaconda给人的第一印象就是,庞大的自带科学计算库,AI必用。
可是它还有一个重要的功能,分割各种Python环境,类似于我们的虚拟环境。在一个Anaconda里你可以创建无数的环境。这环境由一个类似完整独立的python组成,这里的独立还包括对应的库环境,如果你去看它的目录结构,同一个原生的python几乎一摸一样,例如我创建了一个python3.7的环境,这里可以使用python3.7,我又在这里pip一个Requests包。过几天我又创建了一个python3.9的环境,我在这里pip一个Tensorflow包,这两者是不相关的。这个功能与Pycharm配合会更好。
这些个环境可以通过Navigator来实现,存放在Anacnda安装目录里的evns目录里。
很多人还是一头雾水,这有什么用?还不如我一个python IDLE好用。我必须保留原生的python。这是很多人对于原生Python的一个执念。
这里又要说一个事儿。
Anaconda真是一个闷葫芦。它自带了python IDLE。 在安装后却没有像jupyter那样明显的显示。太败家了。
原生python IDLE
1 | IDLE (python 3.7.4 64-bit) |
而Anaconda的在哪里?和着这个一摸一样啊!
右键桌面空白,新建,快捷方式。目标,还可以自己起一个名。
1 | "F:\ProgramData\Anaconda3\pythonw.exe""F:\ProgramData\Anaconda3\Lib\idlelib\idle.pyw" |
说到这里,原生Python有的没的Anaconda都是有的。为什么还揪着原来的python不放?
卸载原生Python注意如果以前改过解释器名称的,改回来才可以正常卸载。
所以一个完整的python环境
只需要安装Anaconda + Pycharm即可。
1 Anaconda使用
由于 很多人在 Anaconda Navigator 界面遇到很多问题。建议直接放弃视图界面。
这里介绍命令方法使用Anaconda。
1.1 查看conda版本
1 | conda -V |
1.2 查看各种虚拟环境
1 | conda info -e |
1.3 创建一个虚拟的 python3.7环境 名字叫enviroment_name
1 | conda create -n enviroment_name python=3.7 |
文件在Anaconda3\envs
虚拟环境 python3.7 与 原生python3.7 完全一致
你甚至可以利用快捷方式创建一个虚拟环境 python3.7的IDLE。与上面的方法一致。
1.4 虚拟环境的进入与退出
1 | # To activate this environment, use |
这两条命令可以随时进入(退出)这个虚拟的环境,一旦进入,任何操作都与整体Python环境无关。包括下载包。
可以看到这个环境里只有四个包。很简单。
1 | (py37) C:\Users\hp四核>pip list |
1.5 虚拟环境的删除
1 | conda remove -n py37 --all |
删除所有的环境相关文件。
1.6 Pycharm利用Anaconda的虚拟环境
Pycharm是自带虚拟环境功能的,不过他只是用一个python.exe在项目vens目录里创建虚拟环境。没有新的解释器加入。是虚拟包环境。
这里讲如何在pychrm利用Anaconda的虚拟环境。
Interpreter是Python的解释器,运行Python需要解释器的帮助。
例如在CMD里键入Python就是调用这个解释器。解释器会依赖其中的Python版本信息,来解释你的代码。
任何高级语言都需要解释器,也都有解释器。
1 | interpreter 英 [ɪnˈtɜːprətə(r)] 美 [ɪnˈtɜːrprətər] n. 口译译员;口译工作者;演绎(音乐、戏剧中人物等)的人;解释程序 |
1.6.1 选择 Previously configured interpreter
点击新环境使用Anaconda
1.6.2 添加Anaconda的虚拟环境解释器
这里等一会儿就行了,他会自动寻找。其实就是虚拟环境里的Python解释器。
1.6.3 Create
这就成功创建了一个基于Anaconda的虚拟环境的Python项目。
我们打开设置
看一下环境的包
2 Pycharm使用
C语言要想运行就必须要有gcc编译器,C++运行就必须要有g++编译器。任何语言的运行都需要编译器的帮助。可是这些语言在创建运行时,我们离他们的编译器很远。他们藏在一些大型编译环境的深处。
python便不一样了,由于语言特性。他需要在创建一个项目的同时,指定一个Python的编译器解释器。
你在命令行运行Python程序的时候 python test.py
,其实也是指定了一个解释器。希望大家能够理解这层关系。
pycharm的一大优势就是虚拟环境。根据一个Python的解释器,在项目目录里生成一个虚拟的环境,这个环境的解释器同外部的想通过,但是第三方包是完全独立的。
Interpreter 就是 python.exe
。
2.1 虚拟环境创建
选择 New environment using Virtualenv 外加一个解释器Interpreter就可以了,下面图片用的是Annaconda自带解释器。
解释器使用anaconda的虚拟环境中的 python.exe
也是可行的。
虚拟环境是很干净的,只有三个包。
2.2 项目的共享
你编写了一个程序,下载了许多包。程序只有1 m,而项目的包却有100 G。突然你想把这个项目上传到网上。
这个100 G的东西压缩都需要不少时间。有什么更好的办法呢。
这个虚拟环境自带一个Python.exe
pip
。见下图
在项目的Terminal运行Python.exe
pip
就相当于激活了这个虚拟环境。一切操作针对这个虚拟环境。
2.2.1 制作依赖文件
在项目的Terminal运行
1 | pip freeze > requirements.txt # 将项目的虚拟环境包的依赖放入requirements.txt |
这样你只需要将这两个文件发送给他人即可
1 | code.py |
2.2.2 使用有依赖文件的项目
创建一个新项目,使用一个新的虚拟环境。放入code.py
requirements.txt
在项目的Terminal运行
1 | pip install -r requirements.txt |
就会下载里面的包。制作一个一摸一样的环境。
pip利用国内阿里云源 更加快速的下载包
1 | pip install -i http://mirrors.aliyun.com/pypi/simple/ pandas |
3 虚拟环境
从某种角度说
Anaconda的虚拟环境是 集中式虚拟环境
Pycharm的虚拟环境是 分散式虚拟环境