前言

许多人学习Python的经历可能很相似,写程序没有问题,最后却被各种环境困扰。

不论你是Python小白,还是学习Python有一段时间了。都可以认真的看一下ヾ(≧▽≦*)o

这篇文章让你对Anaconda Pycharm理解更透彻。或许会有新的发现哦!

小故事

王二喜,男,性别不详。程序员一个,头发一打。

"这年头多会一门语言就是多会一门手艺,技多不压身" 王二喜摸了摸自己未来的口袋,有了学习python的心思。

去Python的官网下载,安装。出于程序员天生对于事物的控制感,王二喜打开了Python的安装路径。一个python.exe 和 pythonw.exe(IDLE 的一个组成部分),更复杂的路径里还有pip.exe。王二喜摸了摸眼镜说:“结构清晰,文件精简”。转身便投入到语法的海洋中去,领会其中的水深火热。一句语法,一份力量。

就这样,简简单单。几天过去了...

王二喜很喜欢使用原生的IDLE。 这里可以方便的测试各种Python语法。这期间命令行里输入python pip ,误打误撞的学习的过程中也安装了许多的库文件,方便了自己的编程。

天气晴朗,昨夜刚下了一场雨。

王二喜坐在电脑面前看着一篇博文《Python AI 手写数字识别》,什么神经网络,数据集,模型。所有的代码竟然不到100行。王二喜立刻照着代码,自己实现了一下。不错,程序可以运行,可是很多关于 Deep Learning 的概念王二喜并不是很懂。王二喜决定找个教程学一学。教程A Anaconda。教程B Anaconda。教程C Anaconda。世界就是这么循环往复,学习永不停止。

Anaconda 科学计算,方便包管理。王二喜根据一些教学视频,安装了下来。一个良好的环境是心情美丽开发的起点。

**对于安装成功后的测试中,王二喜在命令行输入Python,发现出来的并不是的老相好原生python。而是新上任的Anaconda里的Python。

原来的pip也不可以使用了。王二喜大惊失色:“不会我原来的程序都不能运行了把。”

Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated. Libraries may fail to load. To activate this environment
please see https://conda.io/activation Type "help", "copyright", "credits" or "license" for more information.
>>>123
123
>>>exit()

王二喜感觉身体有点麻,不是全麻的那种,因为他还有部分感觉。

还好这场面这几年来见过不少”大场面“,原生的Python IDLE 是可以继续使用的。王二喜立刻调整了心态。身体的麻感也渐渐消失了...接着进行了Anaconda的探索。

电脑里出现了很多最近添加,王二喜点了一下Jupyter,出现一个网址,点进去发现很不错。那Spyder 又是什么呢。点击了半天,发现并不可以使用 打不开的。王二喜并不清楚来自远古的冰河世纪的麻感,渐渐的,渐渐的,向他围拢了来...

点击Navigator,原来图形界面在这里啊,launch一下jupyter,这东西也不动

创建一个新环境,只是走进度条,最后没有结果

”我这安装了一个什么东西?“王二喜在网上开始了漫漫的求解之路,此去山长水远,少小离家老大回。为什么视图界面不可以运行Jupyter Spyder。这个问题他一辈子都没有解决,不断的试错加深了他的麻感....

王二喜对Anaconda并不感冒,编写程序还是喜欢使用原来的IDLE。就这样又编了一段时间。

直到刚开始要接触一些大的项目用到Pycharm。

初秋的夜,天气已然微凉。王二喜感到嘴唇发麻,因为他喜欢白色的烈酒搭配红色花椒粒。风很冷,这酒却是暖暖的。王二喜打开电脑,开始今天的学习之旅。

正常安装Pycharm后,开始创建项目,什 venv 什么interpreter 为什么要选择interpreter?王二喜一脸疑惑。没有答案并且腿麻了。

现在,王二喜开始接触到虚拟环境了。知道在虚拟环境中安装或者删除的包,对于真正的Python全局来说并不影响。而且一个新的虚拟环境只有三个包,很干净。

王二喜兴奋的按照教程创建出了自己的虚拟环境。

interpreter是解释器。二喜把自己原生的python.exe 放了上去。

创建成功,但是爆出了一个错误

Invalid Python SDK
cannot set a python SDK at Python 3.10(PythonProject)(F:\Code\PythonProject\venv\Scripts\python.exe)
The SDK seems invalid

二喜心里一惊同时屁股麻了,这是什么东西?顺手点击了OK。这事儿也就过去了。样例程序也可以运行。

迫不及待的试一试,找到了可以查看包的位置,二喜又一次瞪眼了,哪里有之前的说的简单的三个包啊,这**是把咱老Python的包给偷过来了了啊,坑爹啊。(瞪眼)

二喜站在哪里傻傻的说不出话来。整个上半身顿时麻感就涌上来。

王二喜挺住啊!

有没有可能已经是虚拟环境了,与外界隔离了,只不过初始的包库是在原来的基础之上。二喜对它还是有期待的。

二喜在包列表里找了个不那么重要的包,像抓一只即将离开人世的小乳猪,他叫h5py。

打开原来的IDLE,import h5py print(h5py)。h5py高兴的不得了,他输出了自己的信息。转瞬二喜又到了pycharm里卸载了h5py....

这毕竟也是第一次在pycharm里卸载包,二喜还有点小兴奋。

二喜很喜欢这个虚拟环境的功能,对于这种隔离,二喜vmware里已经尝到不少甜头。

打开原来的IDLE

import h5py
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import h5py
ModuleNotFoundError: No module named 'h5py'

多天的深夜程序编写,一直报错的项目环境,小猪猪的离奇死亡....

这一切的一切...

二喜胸口发闷。突然!!!世界一片漆黑,二喜再也没有忍住,麻倒在地不省人世。嘴里念叨着我的h5py小猪猪啊,呜呜呜。

谁也不知道二喜与h5py的深厚感情....

看到这里很多同志都想起了当年了吧(~ ̄▽ ̄)~

一些拙见

我们想要一个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

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的在哪里?和着这个一摸一样啊!

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

"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版本

conda -V
4.10.1

1.2 查看各种虚拟环境

conda info -e
# conda environments:
#
base * F:\ProgramData\Anaconda3

1.3 创建一个虚拟的 python3.7环境 名字叫enviroment_name

conda create -n enviroment_name python=3.7

文件在Anaconda3\envs

虚拟环境 python3.7 与 原生python3.7 完全一致

你甚至可以利用快捷方式创建一个虚拟环境 python3.7的IDLE。与上面的方法一致。

1.4 虚拟环境的进入与退出

# To activate this environment, use
#
# $ conda activate py37
#
# To deactivate an active environment, use
#
# $ conda deactivate

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

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

(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 虚拟环境的删除

conda remove -n py37 --all

删除所有的环境相关文件。

1.6 Pycharm利用Anaconda的虚拟环境

Pycharm是自带虚拟环境功能的,不过他只是用一个python.exe在项目vens目录里创建虚拟环境。没有新的解释器加入。是虚拟包环境。

这里讲如何在pychrm利用Anaconda的虚拟环境。

Interpreter是Python的解释器,运行Python需要解释器的帮助。

例如在CMD里键入Python就是调用这个解释器。解释器会依赖其中的Python版本信息,来解释你的代码。

任何高级语言都需要解释器,也都有解释器。

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运行

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

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

code.py
requirements.txt

2.2.2 使用有依赖文件的项目

创建一个新项目,使用一个新的虚拟环境。放入code.py requirements.txt

在项目的Terminal运行

pip install -r requirements.txt

就会下载里面的包。制作一个一摸一样的环境。

pip利用国内阿里云源 更加快速的下载包

pip install -i http://mirrors.aliyun.com/pypi/simple/ pandas

3 虚拟环境

从某种角度说

Anaconda的虚拟环境是 集中式虚拟环境

Pycharm的虚拟环境是 分散式虚拟环境

文章可能发生改动。一些网站会爬取本文章可能会有出入。

https://www.cnblogs.com/asmurmur/

Anaconda Pycharm 是怎么个事儿?的更多相关文章

  1. Python学习环境搭建——VMware,Ubuntu,Anaconda,Pycharm

    1.安装VMware虚拟机,版本是14.1.2(含注册码) 链接:https://pan.baidu.com/s/1ffNLONDjEMYDAenE36gRpA 密码:yazx 注:我的电脑分辨率较高 ...

  2. 001-深度学习Pytorch环境搭建(Anaconda , PyCharm导入)

    001-深度学习Pytorch环境搭建(Anaconda , PyCharm导入) 在开始搭建之前我们先说一下本次主要安装的东西有哪些. anaconda 3:第三方包管理软件. 这个玩意可以看作是一 ...

  3. 【深度学习】在linux和windows下anaconda+pycharm+tensorflow+cuda的配置

    在linux和windows下anaconda+pycharm+tensorflow+cuda的配置 在linux和windows下anaconda+pycharm+tensorflow+cuda的配 ...

  4. python+anaconda+pycharm的使用

    研一开学的时候开始接触了这些,但是对于其各种功能感到十分混乱,现在通过这篇博文将其功能详细的写出来. 1.python解释器 首先要了解python解释器,我们俗称的下载python也就是下载pyth ...

  5. 史上最全最详细的环境搭建教程,行百里者手把手教你在windows下搭建Anaconda+pycharm+库文件(TensorFlow,numpy)环境搭建

    我是在搭建TensorFlow开发环境的道路上走了很多弯路 掉了很多头发,为了让广大同学们不在受苦受累 下面我将手把手教你学习如特快速搭建python环境 快速导入numpy,PIL,pillow,等 ...

  6. 学习笔记之Anaconda / PyCharm

    Anaconda https://www.anaconda.com/ The Most Popular Python Data Science Platform Getting started wit ...

  7. anaconda+pycharm的安装和应用

    至于anaconda的安装与pycharm的安装在此不做多说,主要说下遇到的问题. 问题描述: 安装anaconda后,pip下载的第三方库调用不到. 原因分析: anaconda自带的python3 ...

  8. Anaconda + PyCharm + Pytorch

    Anaconda 1.  下载Anaconda https://www.anaconda.com/download/ 2.  安装 3. 添加环境变量 Path - C:\Users\Godzilla ...

  9. MacOS上安装Anaconda+Pycharm+TensorFlow+Keras

    一.安装Anaconda 登录https://www.anaconda.com/download/#macos,下载Anaconda3-5.3.1-MacOSX-x86_64.pkg 二.安装Pych ...

随机推荐

  1. Hector SLAM解读(1)原文翻译

      一种带有3D运动状态估计的slam系统 A Flexible and Scalable SLAM System with Full 3D Motion Estimation 摘要: 在许多应用场景 ...

  2. 足不出户,一探古今,打造线上3D数字博物馆!

    随着3D技术的不断革新,为了让更多的用户领略历史之美,越来越多的博物馆开始举办线上展览.通过模拟不同的环境.灯光投影.360°无死角放大缩小展品,观众可以享受到身临其境的沉浸体验.不仅如此,给展品加上 ...

  3. 七个对我最重要的职业建议)--转载来自ruanyifeng博客

    原文:http://www.ruanyifeng.com/blog/2015/09/career-advice.html 一.不要别人点什么,就做什么 我的第一份工作,只干了8个月,那家公司就倒闭了. ...

  4. python3中匿名函数做参数,匿名函数做实参,eval关键字

    一:说到匿名函数,大家都感到陌生又熟悉,今天我带大家了解一下py3中的匿名函数,以及匿名函数作为函数的参数的情况 主要通过以下实例来说明: 实例一: newarr =[33,44444,6222,88 ...

  5. (python函数04)zip(*sorted(zip()))

    zip(*sorted(zip())) 用这个玩意儿可以以对两个迭代对象进行排序. 示例代码01  cnts = [2, 4, 3, 6, 5] boundingBoxes = [(730, 20, ...

  6. jvm源码解读--17 Java的wait()、notify()学习

    write and debug by 张艳涛 wait()和notify()的通常用法 A线程取得锁,执行wait(),释放锁; B线程取得锁,完成业务后执行notify(),再释放锁; B线程释放锁 ...

  7. Django < 2.0.8 任意URL跳转漏洞(CVE-2018-14574)

    影响版本 Django < 2.0.8 抓包 访问http://192.168.49.2:8000//www.example.com,即可返回是301跳转到//www.example.com

  8. Zabbix中Agent自动注册

    目录 Active agent自动注册 以下情况,自动注册会自动运行: 配置 服务端配置 客户端配置 Active agent自动注册 zabbix Active agent可以实现自动注册,进而服务 ...

  9. 浅谈vue响应式原理及发布订阅模式和观察者模式

    一.Vue响应式原理 首先要了解几个概念: 数据响应式:数据模型仅仅是普通的Javascript对象,而我们修改数据时,视图会进行更新,避免了繁琐的DOM操作,提高开发效率. 双向绑定:数据改变,视图 ...

  10. MySQL 事务、日志、锁、索引学习总结,

    MySQL架构 MySQL可分为Server和存储引擎两部分,如图1所示. Server层:包括客户端连接器.查询缓存.解析/预处理器.优化器.执行器等,以及MySQL内置函数和所有跨引擎的功能都在这 ...