我想使用distutils
( setup.py
) 来安装 python 包(来自本地存储库),这需要来自不同本地存储库的另一个包。由于我缺乏该setup
命令的体面文档(我只在
此处和此处setup
找到了一些示例,被-terms 混淆extras_require
,install_require
并dependency_links
在此处和此处找到),是否有人有完整的setup.py
文件来说明如何处理此问题,即distutils
处理安装在某些 SVN 存储库中找到的一个包,当我现在安装的主包需要它时?
更详细的解释:我有两个本地 svn(或 git)存储库basicmodule
和extendedmodule
. 现在我结帐extendedmodule
并运行python setup.py install
. 该setup.py
文件知道extendedmodule
需要basicmodule
,并自动从存储库下载并安装它(以防它尚未安装)。我该如何解决这个问题setup.py
?或者也许还有另一种更好的方法来做到这一点?
编辑:后续问题
根据汤姆的回答,我尝试使用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 存储库的任何配置的情况下解决这个问题?