我想使用distutils
(setup.py
)来安装python包(从本地存储库),这需要来自不同本地存储库的另一个包。由于我缺少setup
命令的像样文档(我只找到了一些示例
here和{a2}被setup
-术语extras_require
、install_require
和{setup.py
文件来说明如何处理这个问题,例如,distutils
处理在某个SVN存储库中找到的包的安装,而我现在正在安装的主包需要这样做?在
更详细的解释:我有两个本地svn(或git)存储库basicmodule
和{extendedmodule
并运行python setup.py install
。此setup.py
文件知道extendedmodule
需要{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"]
)
尝试以普通用户身份安装时,出现以下错误:
^{pr2}$但是,当我使用完全相同的链接执行正常的svn
签出时,它会起作用:
svn co https://source.company.xy/svn/MainDir/SVNDir/basiclib/trunk@20479
有什么建议可以在不改变svn存储库配置的情况下解决这个问题吗?在
看看这两个问题的答案。它们都给出了
install_requires
和dependency_links
如何协同工作以实现您想要的结果的具体示例。在Can Pip install dependencies not specified in setup.py at install time?
Can a Python package depend on a specific version control revision of another Python package?
我认为问题是您的svn客户机是经过身份验证的(缓存域在~/.subversion目录中的某个地方),而您的distutils http客户端不知道如何做。在
Distutils支持依赖链接中的svn+http链接类型。因此,您可以尝试在提供用户名和密码的依赖链接之前添加“svn+”:
出于安全原因,您不应在设置.py文件。一种方法是从环境变量或事件中获取身份验证信息尝试从subversion配置目录(~/.subversion)获取
希望有帮助
相关问题 更多 >
编程相关推荐