Python开发环境简介

Python开发环境的简单介绍。

依赖

import requests

当在Python代码里import一个Python module时,你就引入了一个“依赖”

搜索依赖

Python解释器需要知道依赖的位置。如果import的module不是一个built-in module, 那么Python解释器就会去sys.path指定的目录下搜索。(sys.path在不同的系统上可能会有不同的值。)

安装依赖

Python内置了Distutils,它可以帮助开发者“分发”Python module,也帮助用户安装Python module。

python setup.py install

默认情况下,上面的命令会把Python module安装类似/usr/local/lib/pythonX.Y/site-packages之类的目录。

pip

Distutils是一个比较原始的工具,Python官方也推荐用户使用第三方工具来安装Python module,比如pip。 使用pip可以方便地从PyPI上下载package,并安装它。

$ pip install SomePackage

PyPI类似于Java世界里的Maven(中央)仓库。

virtualenv

不管是Distutils还是pip,在安装时都会把package安装到一个“全局的”目录下,比如上文 提到的/usr/local/lib/pythonX.Y/site-packages。这种情况下,更新某个package的 影响是全局的;很可能导致之前的Python程序突然不能工作了。

virtualenv提供了一种解决方案,它可以给不同的Python程序提供一个隔离的环境。 一个Python程序所依赖的所有package都存在于它自己的隔离环境里。

$ virtualenv env

上面的命令生产了一个新的环境。Python执行程序,pip,和所有package都存在于env目录下。

使用-p选项,-p PYTHON_EXE, --python=PYTHON_EXE,可以在创建环境时指定Python执行程序。

Requirements Files

pip freeze > requirements.txt
pip install -r requirements.txt

pip可以把当前安装的package的版本信息“快照”下来;也就是说你可以把当前可以工作的依赖信息 “快照”下来。未来可以通过requirements.txt把所有package回滚到可工作的状态。开发者 之间也可以通过requirements.txt来确保他们的工作环境是一致的。

requirements.txt最好被提交到git仓库里。

实际上,requirements.txt有点像Ruby世界里的Gemfile.lock文件。



注: 上面的文字在某种程度上把modulepackage依赖混着用。 由于本身不是专业的Python开发者,如果任何错误,恳请指正。

2016-04-19 20:36
推荐到豆瓣

如果你觉得这篇文章对你有用,可以微信扫一扫表示🙏 / If you find this post is useful to you, buy me 🍶 via Wechat