python安装已经下载好的模块 python安装的模块在哪里_python安装方法


多少人看着就想要放弃,多少人学着却被困在原地

我该如何,安装python的第三方模块

小嘿(python爱好者) : Python好啊,Python棒,正所谓“人生苦短,我用Python”,听说Python 的一大优势就是有丰富且易用的第三方模块,省去了大量重复造轮子的时间,节约了众多开发者的生命。

老溜(python菜鸟) :

小嘿(python爱好者) : 额...嗯..饿...诶呀,有点事情,先不聊了,拜。

老溜(python菜鸟) : ...........

码不理(python高端玩家):你好,我是码不理。其实对于已经熟悉 Python 开发的人来说,安装第三方模块是家常便饭的事情。但如果是刚入门的新手,很可能会被折腾一番。所以下面我就来简单地科普一下,如何安装 Python 的第三方模块。

安装常用的两种方式:

通过包管理器/直接下载源码安装。

01

包管理器

包管理器。你可以把“包管理器”想象成一个类似应用商店的工具。Python 的包管理器里就是各种第三方模块。有了它,不用998,也不用98,只需要一条命令,就可以自动帮你下载并安装。

pipeasy_install。他们会从一个叫做 PyPI 的源里搜索你要的模块,找到后自动下载安装。PyPI 是 Python 官方的第三方模块仓库,供所有开发者下载或上传代码。

PiP

pipAdd python.exe to Path,就会帮你同时安装好 pip 并设置好环境变量中的路径。如果无法使用 pip,确认 Python 安装目录下的Scripts 子目录中有 pip,并且这个子目录的路径被加在了环境变量 Path 中。如果没有 pip,则要通过下载 setuptools 安装,或建议直接重新安装一遍 Python。

pip

pip install ipython

如果一切正常,网络不抽风,只要稍微等待,就可以看到下载进度,自动安装完就可使用。如果 Mac/Linux 下提示 Permission denied 之类的权限问题,在命令前加上 sudo。


python安装已经下载好的模块 python安装的模块在哪里_Python_02


IPython 是一个增强版的 Python shell,在命令行输入 ipython 就可以打开使用。比默认运行 python 进入的那个更好使,在里面调试代码会很方便。不过 windows 的话,还要再用 pip 装一个 pyreadline 的模块,才能使用 IPython 的 tab 键自动补全功能。(用 Windows 开发就是事多)

如果你不是很明确要下载的模块名,也可以进行搜索

pip search ipython

easy_install

再来看 easy_install。安装 easy_install 的一种简单方法是去网上下载一个 ez_setup.py 的脚本文件。

http://peak.telecommunity.com/dist/ez_setup.py

下载之后运行它:

python ez_setup.py

然后 easy_install 就被安装好了。同样,需确认 Scripts 在环境变量 PATH 里。

使用方法和 pip 一样简单:

easy_install ipython

总结

一般来说,pip 和 easy_install 就可以搞定绝大多数的模块安装了。万一不行,还可以尝试下面的另一种方式。

02

源码安装

几乎所有第三方模块都可以在 PyPI 或 github 上找到源码,都会提供 zip、tar 等格式的压缩包。把代码压缩包下载到本地并解压,应该会看到一个 setup.py 的文件。在命令行进入其所在目录,执行:

python setup.py install

就会安装这个第三方模块。最终效果和用包管理器是一样的。

无论哪种方法,都会将第三方模块代码安装至 Python 的路径下,根据系统不同,位置有所区别,大致都是叫做 site-packages 或 dist-packages。所以对于一些没有其他依赖,不需要编译其他语言的纯 Python 代码包,也可以直接手动将源码复制到 site-packages 或 dist-packages 目录下。只要路径正确,就可以在你的代码里引入这些模块。

友情提醒


python安装已经下载好的模块 python安装的模块在哪里_python安装方法_03


请确认它所支持的版本,是不是包含你所使用的 Python 版本。有些模块对应 Python 2 和 3 需要下载不同的版本。

无法直接一条命令安装成功,特殊情况特殊对待,搜索引擎会给你指引。

virtualenv 是一个很好的解决方案,下次会专门来讲一讲。