使用pip或easy_install从repos安装Python包

时间:2009-06-23 17:07:30

标签: python svn version-control easy-install pip

到目前为止,处理python包安装的最简单方法是从源代码控制系统中检查源代码,然后在python dist-packages文件夹中添加一个符号链接。

显然,由于源代码控制提供了降级的完全控制,升级到任何分支,标记,它运行良好。

有没有办法使用其中一个Package安装程序(easy_install或pip或其他),可以实现相同的目的。

easy_install获取tar.gz并使用安装在python2.6的dist-packages文件夹中的setup.py install进行安装。有没有办法配置它,或者改为使用源版本控制系统(SVN / GIT / Hg / Bzr)。

4 个答案:

答案 0 :(得分:26)

使用pip这很容易。例如:

pip install -e hg+http://bitbucket.org/andrewgodwin/south/#egg=South

Pip将自动克隆源代码并运行“setup.py develop”,以便将其安装到您的环境中(希望是virtualenv)。 Git,Subversion,Bazaar和Mercurial都受到支持。

您还可以运行“pip freeze”,它将输出您当前安装的软件包及其确切版本的列表(包括,对于开发安装,来自VCS的确切修订)。您可以直接将其放入需求文件中,然后运行

pip install -r requirements.txt

以完全相同的版本安装相同的软件包。

答案 1 :(得分:11)

如果您下载或检查软件包的源代码分发 - 其中包含“setup.py”的软件包 - 那么如果软件包基于“setuptools”(也支持easy_install),您可以进入该目录并说:

$ python setup.py develop

它将在dist-packages中创建正确的符号链接,以便源分发中的.py文件是导入的,而不是单独安装的副本(这是“setup.py install”将执行的操作 - 创建编辑源代码以尝试更改时不会立即更改的单独副本。

正如其他响应所示,您应该尝试阅读“setuptools”文档以了解更多信息。 “setup.py develop”是一个非常有用的功能!尝试将它与virtualenv结合使用,您可以轻松地“setup.py开发”,而不会使用您只是临时开发的软件包来破坏系统范围的Python:

http://pypi.python.org/pypi/virtualenv

答案 2 :(得分:4)

easy_install支持下载特定版本。例如:

easy_install python-dateutil==1.4.0

将安装v1.4,如果没有指定版本,将选择最新版本1.4.1。

还支持svn checkout,但使用它并不能从手动版本中获得很多好处。有关上述更多信息,请参阅手册。

除非您正在开发相关软件包,否则能够切换到特定分支机构很少有用,然后无论如何将它们安装在站点包中通常都不是一个好主意。

答案 3 :(得分:0)

easy_install也接受源树的URL。至少在源代码处于Subversion时起作用。