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

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

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

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

有帮助吗?

解决方案

使用点子这很容易。例如:

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

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

其他提示

如果您下载或查看包裹的来源分发—具有“setup.py”的那个里面的—然后如果包是基于“setuptools”的话。 (这也是easy_install的功能),您可以进入该目录并说:

$ python setup.py develop

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

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

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

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

easy_install python-dateutil==1.4.0

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top