使用pip或easy_install从repos安装Python包

Lak*_*sad 14 python svn version-control pip easy-install

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

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

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

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

Car*_*yer 26

使用pip这很容易.例如:

pip install -e hg+http://bitbucket.org/andrewgodwin/south/#egg=South
Run Code Online (Sandbox Code Playgroud)

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

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

pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

在完全相同的版本上安装同一组软件包.


Bra*_*des 11

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

$ python setup.py develop
Run Code Online (Sandbox Code Playgroud)

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

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

http://pypi.python.org/pypi/virtualenv
Run Code Online (Sandbox Code Playgroud)

  • 另请注意"pip install -e".相当于"python setup.py develop",除了它也适用于不在setup.py中使用setuptools的包(因为pip强制它们无论如何都要使用它;>) (3认同)
  • +1:virtualenv在进行python开发时是必不可少的 (2认同)