零基础学编程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:\Anaconda\Lib\site-packages

5. 直接放在文件夹内

如果所需要的第三方库用上述方法都不行,可以尝试把代码文件下载下来,直接用import语句试试能否成功。这个基本上就看运气了,如果报错比较少的话,可以尝试自己修改下源码,比如python2和python3版本兼容的问题,或安装所缺少依赖包等。

本文来自“分享与成长群”成员时空Drei的分享。微信公众号:stdrei,专注于时空数据处理,欢迎点击文末左下角的“阅读原文”进行关注。

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-04-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大魏分享(微信公众号:david-share)

微服务架构模式解析 | 大魏学微服务系列第一篇

微服务架构( Microservice Architecture MSA)环境的定义特征是:模块化服务是单独部署的、每个模块化服务可以独立于其他服务,或同一服务...

1083
来自专栏沃趣科技

Shell Limits设置问题导致用户不能登录

发生故障的环境为:RHEL 6.7,ORACLE 11gR2 RAC,其中集群节点1发生此故障,而节点2状态正常。

992
来自专栏腾讯移动品质中心TMQ的专栏

像 google 一样测试系列之五:流程与覆盖率篇

有了用例,还需持续跑起来,并能有覆盖率。如何让 Local Unit Tests和Instrumented Tests 都支持脚本执行?

1701
来自专栏Golang语言社区

NSQ:分布式的实时消息平台--简介

源码下载地址: https://github.com/bitly/nsq NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在Gi...

3266
来自专栏FreeBuf

挖洞经验 | 看我如何综合利用4个漏洞实现GitHub Enterprise 远程代码执行

大家好,距离上次漏洞披露已有半年之余,在这篇文章中,我将向大家展示如何通过4个漏洞完美实现GitHub Enterprise的RCE执行,该RCE实现方法与服务...

4166
来自专栏lgp20151222

傻瓜式的go modules的讲解和代码

国内关于gomod的文章,哪怕是使用了百度 -csdn,依然全是理论,虽然golang的使用者大多是大神但是也有像我这样的的弱鸡是不是?

2672
来自专栏Golang语言社区

NSQ:分布式的实时消息平台--简介

源码下载地址: https://github.com/bitly/nsq NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在Gi...

4246
来自专栏企鹅号快讯

MITM6:用IPv6攻陷IPv4网络的工具

随着IPv6概念的提出,互联网上针对IPv6协议的使用也日渐增多,但即便如此IPv6在公司内部却并不受欢迎,很少会有公司使用IPv6。然而,大多数公司可能都忽略...

2767
来自专栏容器云生态

Mesos+Marathon+Docker构建docker集群化管理

由Docker引领的容器技术最近一年在生产环境叫嚣的比较厉害,由于Docker本身拥有的一些特性,使得越来越多的人愿意并且想尝试在生产环境构建Docker,有关...

2495
来自专栏Java架构解析

设计一个百万级的消息推送系统

先简单说下本次的主题,由于我最近做的是物联网相关的开发工作,其中就不免会遇到和设备的交互。

2773

扫码关注云+社区