在另一个包中销售Python包
我有两个项目,其中一个是另一个的依赖项。因为它们是私人项目,所以不会像普通项目一样发布到PyPI并通过在另一个包中销售Python包,python,pip,packages,Python,Pip,Packages,我有两个项目,其中一个是另一个的依赖项。因为它们是私人项目,所以不会像普通项目一样发布到PyPI并通过pip下载,而是根据需要销售到其他项目中。我的包裹是这样排列的: project_a/ ... setup.py project_b/ ... setup.py vendor/ project_a-0.0.1-py3-none-any.whl project\u b中的setup.py文件引用了project\u a作为install\u requires中的正常
pip
下载,而是根据需要销售到其他项目中。我的包裹是这样排列的:
project_a/
...
setup.py
project_b/
...
setup.py
vendor/
project_a-0.0.1-py3-none-any.whl
project\u b
中的setup.py
文件引用了project\u a
作为install\u requires中的正常依赖项:
setup(
# ...
install_requires=[
'project_a',
],
# ...
)
但是,当我尝试在另一个项目中pip安装project\u b
时,project\u a
无法解决:
Collecting project_a (from project_b==0.0.1)
Could not find a version that satisfies the requirement project_a (from project_b==0.0.1) (from versions: )
No matching distribution found for project_a (from project_b==0.0.1)
我试图做的是可能的,还是在我的其他项目中分别提供project\u a
和project\u b
的正确方法?为什么不设置本地pip代理并发布到该代理?此外,依赖项可以设置为版本控制存储库URL。但是如果要提供项目,您不会将它们作为依赖项添加到setup.py
文件中,因为它们已经存在于发行版中。有关包含供应商依赖项的项目,请参阅和。感谢您的评论,Martjin使用repo URL对我不起作用,因为repo是私有的,无法与Heroku联系(这些软件包的用户将在此处结束)。类似地,本地pip
代理也不适合,原因相同。为什么不设置一个本地pip代理并发布到该代理?此外,依赖项可以设置为版本控制存储库URL。但是,如果您要提供项目,您不会将它们作为依赖项添加到setup.py
文件中,因为它们已经不是此处位于发行版中。有关包含供应商依赖项的项目,请参阅和。感谢您的评论,Martjin使用repo URL对我不起作用,因为repo是私有的,并且无法从Heroku联系到(这些包的用户最终将在Heroku)。同样,出于同样的原因,本地pip
代理也不适合。