零基础学编程040:在Windows上安装Python库的正确姿势
Python的优势不仅仅在于优雅的语言、简洁的语法,强大的第三方库是其能够用于各个领域的最重要杀手锏之一,如在数据科学领域的numpy、scipy、pandas、scikit-learn、jupyter,在Web开发领域的Django、Flask、Tornado等。
Python对linux是非常友好的,而在windows下,有时候安装第三方库时,会出现一些莫名其妙的错误,有时候能搞到你崩溃。
1. Conda命令
在windows操作系统使用Python时,强烈推荐先安装Anaconda免费的科学计算发行版。可以利用其内置的conda命令,安装第三方库。在 ArcGIS Pro 1.3的版本中,也使用了conda。在安装指定的第三方库时,如numpy,使用如下命令即可
conda install numpy
需要注意的是,conda命令需要在Anaconda Command Prompt中输入
2. Pip命令
用conda命令安装第三方库在windows上基本问题不大,但其所包括的第三方库毕竟有限,用的最多的还是pip命令,在《零基础学编程027:站在巨人的肩膀上》已介绍过,如
pip install numpy
pip会从互联网下载所有相关的文件进行全自动的安装,但网络情况不好的时候,可以现从 pypi 上找到包,下载到本地用下面的命令进行安装
pip install xxx.zip
3. whl 文件安装
用pip安装一些不太成熟的第三方库时,偶尔会失败,因而能用conda就尽量用conda,如果用pip命令不成功的话,可以直接找相应的whl文件,下载下来安装 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 如安装对应Python 2.7,64位版本的scikit-learn,在cmd或Anaconda Prompt命令窗口下,切换到下载目录,执行下列命令
pip install scikit_learn‑0.18.1‑cp27‑cp27m‑win_amd64.whl
需要注意的是,下载的whl文件名不要修改,留意Python版本和操作系统32位还是64位,下载错误的文件必然是装不成功的。
4. 源码安装
对于没有现成的安装文件时,可以尝试直接从github或其他地方下载源码,在cmd或Anaconda Prompt命令窗口下,切换到源码目录
python setup.py install
把这个第三库安装到系统默认的 Python 路径,如C:AnacondaLibsite-packages
5. 直接放在文件夹内
如果所需要的第三方库用上述方法都不行,可以尝试把代码文件下载下来,直接用import语句试试能否成功。这个基本上就看运气了,如果报错比较少的话,可以尝试自己修改下源码,比如python2和python3版本兼容的问题,或安装所缺少依赖包等。
本文来自“分享与成长群”成员时空Drei的分享。微信公众号:stdrei,专注于时空数据处理,欢迎点击文末左下角的“阅读原文”进行关注。
--- END ---
- 在一个.net sln中包含多个project,project引用同一个dll导致的错误
- Windows下安装MariaDB
- Quartz.net官方开发指南 第一课:使用Quartz.net
- Quartz.net官方开发指南 第二课:Jobs And Triggers
- 为你的WordPress 主题添加结构化数据/丰富文本摘要,高亮搜索结果(上)
- 复合事件处理(Complex Event Processing)介绍
- Quartz.net官方开发指南 第三课:更多关于Jobs和JobDetails
- 为你的WordPress 主题添加结构化数据/丰富文本摘要,高亮搜索结果(下)
- Quartz.net官方开发指南 第四课:关于Triggers更多内容
- 数据分析:寻找Python最优计算性能
- 事件流处理框架NEsper for .NET
- Quartz.net官方开发指南 第五课: SimpleTrigger
- SQL Server Performance Dashboard Reports
- 添加WordPress评论输入邮箱实时显示Gravatar头像功能
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python threading.current_thread().name和.getName()有什么区别
- Golang是如何操作excel的?
- Typecho配置多国语支持,检查客户端语言自动切换翻译
- NgModule imports定义的运行时数据结构
- 用Windows电脑训练深度学习模型?超详细配置教程来了
- Angular No provider for EffectsRootModule错误消息
- Leetcode No.15 三数之和
- 正则表达式介绍与使用
- Angular StoreFeatureModule
- Angular Component之间的事件通知机制
- 如何将你的Python项目全面自动化?
- 正则表达式介绍与使用
- Angular ERROR NullInjectorError: R3InjectorError(AppModule)的错误分析
- 2.4-Air302(NB-IOT)-基础外设-延时,定时器
- Shell正则表达式一览表