【发布时间】:2013-03-12 18:03:04
【问题描述】:
我想使用distutils (setup.py) 来安装python 包(来自本地存储库),这需要来自不同本地存储库的另一个包。由于我缺乏关于setup 命令的体面文档(我只找到了一些示例
here 和 here,被 setup-terms extras_require、install_require 和 dependency_links 弄糊涂了,发现 here 和 here),有没有人有完整的 setup.py 文件来说明如何做到这一点被处理,即distutils 处理在某些 SVN 存储库中找到的包的安装,当我现在安装的主包需要它时?
更详细的解释:我有两个本地svn(或git)存储库basicmodule和extendedmodule。现在我结帐extendedmodule 并运行python setup.py install。这个setup.py 文件知道extendedmodule 需要basicmodule,并自动从存储库下载并安装它(以防它尚未安装)。我怎样才能用setup.py 解决这个问题?或者也许还有另一种更好的方法来做到这一点?
编辑:后续问题
根据 Tom 的回答,我尝试使用 setup.py,如下所示:
from setuptools import setup
setup(
name = "extralibs",
version = "0.0.2",
description = ("Some extra libs."),
packages=['extralib'],
install_requires = "basiclib==1.9dev-r1234",
dependency_links = ["https://source.company.xy/svn/MainDir/SVNDir/basiclib/trunk@20479#egg=basiclib-1.9dev-r1234"]
)
当尝试以普通用户身份安装时,我收到以下错误:
error: Can't download https://source.company.xy/svn/MainDir/SVNDir/basiclib/trunk@20479: 401 Authorization Required
但是当我使用完全相同的链接进行正常的svn 结帐时,它可以工作:
svn co https://source.company.xy/svn/MainDir/SVNDir/basiclib/trunk@20479
任何建议如何在不更改 svn 存储库的任何配置的情况下解决这个问题?
【问题讨论】:
标签: python python-2.7 package setuptools