@转载

想要一个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
2
3
IDLE (python 3.7.4 64-bit)
目标
C:\Users\hp四核\AppData\Local\Programs\Python\Python37\pythonw.exe "C:\Users\hp四核\AppData\Local\Programs\Python\Python37\Lib\idlelib\idle.pyw"

而Anaconda的在哪里?和着这个一摸一样啊!

右键桌面空白,新建,快捷方式。目标,还可以自己起一个名。

1
"F:\ProgramData\Anaconda3\pythonw.exe""F:\ProgramData\Anaconda3\Lib\idlelib\idle.pyw"

img

说到这里,原生Python有的没的Anaconda都是有的。为什么还揪着原来的python不放?

卸载原生Python注意如果以前改过解释器名称的,改回来才可以正常卸载。

所以一个完整的python环境

只需要安装Anaconda + Pycharm即可。

1 Anaconda使用

由于 很多人在 Anaconda Navigator 界面遇到很多问题。建议直接放弃视图界面。

这里介绍命令方法使用Anaconda。

1.1 查看conda版本

1
2
conda -V
4.10.1

1.2 查看各种虚拟环境

1
2
3
4
conda info -e
# conda environments:
#
base * F:\ProgramData\Anaconda3

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
2
3
4
5
6
7
# To activate this environment, use
#
# $ conda activate py37
#
# To deactivate an active environment, use
#
# $ conda deactivate

这两条命令可以随时进入(退出)这个虚拟的环境,一旦进入,任何操作都与整体Python环境无关。包括下载包。

可以看到这个环境里只有四个包。很简单。

1
2
3
4
5
6
7
8
(py37) C:\Users\hp四核>pip list
Package Version
------------ -------------------
certifi 2021.5.30
pip 21.0.1
setuptools 52.0.0.post20210125
wheel 0.37.0
wincertstore 0.2

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

img

1.6.2 添加Anaconda的虚拟环境解释器

这里等一会儿就行了,他会自动寻找。其实就是虚拟环境里的Python解释器。

img

1.6.3 Create

这就成功创建了一个基于Anaconda的虚拟环境的Python项目。

我们打开设置

看一下环境的包

img

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自带解释器。

img

解释器使用anaconda的虚拟环境中的 python.exe也是可行的。

img

虚拟环境是很干净的,只有三个包。

2.2 项目的共享

你编写了一个程序,下载了许多包。程序只有1 m,而项目的包却有100 G。突然你想把这个项目上传到网上。

这个100 G的东西压缩都需要不少时间。有什么更好的办法呢。

这个虚拟环境自带一个Python.exe pip。见下图

img

在项目的Terminal运行Python.exe pip就相当于激活了这个虚拟环境。一切操作针对这个虚拟环境。

2.2.1 制作依赖文件

在项目的Terminal运行

1
pip freeze > requirements.txt # 将项目的虚拟环境包的依赖放入requirements.txt

这样你只需要将这两个文件发送给他人即可

1
2
code.py
requirements.txt

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的虚拟环境是 分散式虚拟环境