我也曾经因安装库而抓狂,直到我遇到了

简介: 我自己印象最深的是在 Mac 上安装 pycrypto(加密)和 scipy(科学计算)模块,折腾了很久。因为这类模块并不是单纯的 Python 代码,而是需要调用诸如 C 语言的库,于是就牵涉到在不同平台上的编译,有些还不能很方便地用虚拟环境分离版本。

几乎所有的 Python 学习者都遇到过“安装”方面的问题。这些安装问题包括 Python 自身环境的安装、第三方模块的安装、不同版本的切换,以及不同平台、版本间的兼容问题等。当你因为这些问题而卡壳,一行代码没写就已疯,相信我,你不是一个人……包括我自己,也是这么被坑过来的。


我自己印象最深的是在 Mac 上安装 pycrypto(加密)和 scipy(科学计算)模块,折腾了很久。因为这类模块并不是单纯的 Python 代码,而是需要调用诸如 C 语言的库,于是就牵涉到在不同平台上的编译,有些还不能很方便地用虚拟环境分离版本。在数次尝试失败之后,最终靠着一样工具竟轻松搞定。这就是今天要介绍的:


Anaconda


应该有不少人已经了解和在使用中,另外也考虑到先 Mark 以后需要时再看的收藏党,这里先给个“嫌长不想看”版:


  1. Anaconda 就是一个扩展版 Python,最直接的好处是帮你打包好了一整套数据科学相关的 Python 库,一次安装就可以拥有数据分析、数值计算、数据可视化、机器学习常用的几十个库,不用担心安装不成功、版本不匹配等问题,省时省心。
  2. Anaconda 的核心是 conda 这个包/环境管理器,类似于我们之前介绍过的虚拟环境 virtualenv,且功能更丰富。装了 Anaconda,同时也就可以使用 conda 来管理电脑上不同版本的 Python 环境。
  3. 如果对 conda 的使用不熟悉也没关系。Anaconda 还附带了一个叫做 Navigator(导航)的桌面 GUI 工具,可以直观的创建和管理环境,安装、删除扩展包
  4. Anaconda 安装后,附带了 Jupyter 和 Spyder 两种 IDE。Jupyter 是一种基于浏览器的交互式开发环境,这种边开发边执行的模式很适合编写数据科学类的程序。Spyder 的界面和 Matlab 很相似。不过如果你对 PyCharm 已经熟悉,也可以直接通过设置 interpreter(解释器)路径来直接使用 Anaconda 的环境。


主要就是这几点,如果你在使用中遇到过什么问题,欢迎在文本下方留言讨论。有其他想法或者想听的内容,也欢迎告诉我们。


Anaconda 这个词,字面意思和 Python 类似,都是大蟒蛇。系列电影《狂蟒之灾》的主角就是这玩意儿。美国著名嘻哈歌手麻辣鸡(Nicki Minaj)有首歌就叫《Anaconda》(本文的封面,小孩子不要去搜)。这个项目命名其实很形象:Anaconda 就是一种更大的 Python


再做个类比:安装了 Python 就像买了个毛坯房,虽然刷了涂料通了水电(内置库),但你真的想住进去,还得自己根据需要进行装修(安装各种第三方库)。而 Anaconda 就是个精装修。这个精装是面向数据科学的,同时也保留了你自己进一步改装的空间。


官网上有一个 Anaconda 支持库的列表:


http://docs.anaconda.com/anaconda/packages/pkg-docs/


里面有很多熟悉的面孔(挑了其中几个常见的):



打钩的是包含在安装包中,未打钩的需要后续手动安装。数据分析必备的 numpy、pandas、scipy、matplotlib 自不用说,像数据采集的 requestsbeautifulsoup、scapy,Web 开发的 flask,GUI 的 pyqt,图像处理的 pillow,机器学习 scikit-learn,都直接帮你装好了。就连 vs2015_runtime 这种也为你贴心附上,被坑过的同学应该都懂。


唯一的缺点大概就是这样会比较占空间。但既然你都下决心深入 Python 开发了,这也就是少装一个游戏的空间吧。


如果你安装 Anaconda 的话,是不必装 Python 的,因为它本身包含了 Python 的环境,避免了版本不匹配的问题。Windows、Mac、Linux 三个平台都支持,直接从官网下载安装即可。(建议选择最新版)


https://www.anaconda.com/download/



正常按提示安装没有太大问题,网上的安装示例也一搜一大把,这里不赘述。Windows 建议安装时右键点击,选择“以管理员身份运行”。


安装好之后,检查下你的 Python 是否已经是 Anaconda 环境下的了。(从提示中可以看出)



这时候,你可以通过 conda 来管理你的安装包和环境。使用方法和我们之前介绍过的 virtualenv 类似(参见《为什么你的python版本一团糟?因为少了这个操作》)。常用的命令有


  • conda list:查看环境中的所有包
  • conda install XXX:安装 XXX 包
  • conda remove XXX:删除 XXX 包
  • conda env list:列出所有环境
  • conda create -n XXX:创建名为 XXX 的环境
  • conda env remove -n XXX:删除指定环境
  • activate XXX(或 source activate XXX):启用 XXX 环境
  • deactivate(或 source deactivate):退出环境


同 pip 一样,如果使用 conda 安装很慢,可以通过修改国内源的方式来加速。修改 C:\Users\当前用户名\.condarc(非 Windows 是 ~/.condarc),加入如下配置:


channels:
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
 - defaults
show_channel_urls: true


Anaconda 的又一贴心之处在于,给了你一个叫做 Anaconda Navigator 的桌面 GUI 工具,把上述 conda 的功能都做成了点击按钮就可以完成的事情。



包管理和环境管理都一目了然。


数据科学库、包/环境管理、Navigator 工具,这几样就是 Anaconda 的主要功能。



另外值得一提的是:Anaconda 是附带了一系列第三方库的 Python 以及对这些库的管理工具,和我们之前说的 PyCharm 不是一类东西。PyCharm 是 IDE,用来写代码的编辑器。你可以把 Anaconda 作为运行环境放在 PyCharm 里使用。只要你创建项目的时候选择已经配置好的 Anaconda 环境即可。


而 Anaconda 默认附带的另一个开发工具 Jupyter,也是非常值得推荐的。你可以从 Navigator 里运行,或者在命令行执行命令:


jupyter notebook


它是一个基于浏览器的交互式开发工具。跟 Python 自带的交互环境相比,它的自动完成和提示功能都强大许多,并且你不用再纠结不能在交互环境里写多行代码的问题。



这种代码分块,可以边开发边执行的模式,非常适合编写爬虫、数据处理、数据分析等数据科学类的程序。我之前的很多案例都是使用它来开发,你们看到项目代码中的 .ipynb 文件就是可以导入 Jupyter 的文件。另外它还有个好处,就是可以部署在自己的服务器上使用(当然这也有安全风险),这样只要有网络,你就能随时随地写 Python 了。


不管是 Anaconda 还是 Jupyter,以及之前推荐多次的 PyCharm,到底好不好用,是不是适合你,自己试过了才知道。花点时间装起来用一下,然后欢迎你回来报告使用体验。


其他内容回复关键字:

python :零基础入门课程目录

新手 :初学者指南及常见问题

资源 :超过500M学习资料网盘地址

项目 :十多个进阶项目代码实例

如需了解视频课程及答疑群等更多服务,请号内回复 码上行动

代码相关问题可以在论坛上发帖提问 bbs.crossincode.com

推荐阅读:

爬抖音 | AI名画 | 押韵工具 | 虎扑 | 如何debug | 查天气 | 我用Python | 知乎 | 排序 | 电影票 | 技术宅 | 单词表 | 新手建议 | 如何提问 | 中文编程

相关文章
|
安全 搜索推荐
下载软件别再被套路!教你避开流氓下载器的坑!
安装之前,可以看到界面中明显的提示:“使用360安全导航”、“ABC看图”,这两处旁边还有复选框,细心的你肯定知道要把这两个复选框去掉。
187 0
下载软件别再被套路!教你避开流氓下载器的坑!
|
4月前
|
架构师 Linux Shell
Linux环境下要想事半功倍,少不了这4个技巧!
Linux环境下要想事半功倍,少不了这4个技巧!
|
4月前
|
缓存 Java 应用服务中间件
2021年9月28日,老是遇到一些非常奇葩的问题。就离谱、好好的一个web项目就莫名奇妙坏了。
开发者在使用IDEA 2020编辑器搭建的SSM框架图书管理系统中,遇到删除功能异常问题,经过一系列尝试后发现是IDEA编译缓存导致的,最终通过重新编译项目解决了问题。
|
7月前
|
安全 大数据 Linux
分享5款不起眼但非常实用的小工具
时光荏苒,科技日新月异,一些看似不起眼的小工具却可能改变我们的工作方式。下面我们将介绍五款不可错过的小工具,它们能给你带来一些意想不到的效果,让你的工作更加高效便捷。
88 0
|
开发者
试着做点儿有趣的事情
一个游戏怎样才算是做完了?这是个因人而异的问题。有些游戏还没有做出来就做完了,因为开发者不想再做了。有的游戏看上去做完了,但是后续还在不停的更新,那我们就说这个游戏其实还没有做完。至于如何算是做完了,我觉得这应该交由该游戏的制作者来决定。
93 0
|
数据安全/隐私保护
分享五款没什么名气却意外好用的软件
噔噔噔噔,作为一个黑科技软件爱好者,电脑里肯定是不会缺少这方面的东西,今天的5款优质软件闪亮登场了。
167 0
分享五款没什么名气却意外好用的软件
|
JSON 前端开发 数据可视化
编程实用工具大全(前后端皆可用,不来瞅瞅?)
1.Snipaste 2.命名神器codelf 3.渐变色神器 4.CSS阴影效果神器 5.数据结构可视化 6.Buttons 7.CSS在线设计按钮 8.颜色码转换工具 9.HTML颜色代码 10.HTTP 状态代码 11.Iconfont 矢量图标库 12.JSON字符串格式化 13.数据库大全
编程实用工具大全(前后端皆可用,不来瞅瞅?)
|
存储 机器学习/深度学习 监控
我是傻x,被迫看了 1 天源码,千万别学我!
大家好,我是零一,之前一直很忙,业余时间的输入和输出都 24k铝合金人眼可见 得下降,这不最近上海疫情严重么,算了一下居家办公也已经将近 1个月了,这才有些许时间学习,所以最近也是一直在鼓捣点新东西,不为别的,主要是想再多输入一些新的知识
181 0
我是傻x,被迫看了 1 天源码,千万别学我!
|
网络协议 Ubuntu 安全
Linux常用命令速查册,再也不用费脑细胞了
Linux常用命令速查册,再也不用费脑细胞了
436 0
Linux常用命令速查册,再也不用费脑细胞了
Win系统 - 一键秒关所有程序,霸气侧漏!
Win系统 - 一键秒关所有程序,霸气侧漏!
308 0
Win系统 - 一键秒关所有程序,霸气侧漏!

相关课程

更多

相关实验场景

更多