Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在另一个包中销售Python包_Python_Pip_Packages - Fatal编程技术网

在另一个包中销售Python包

在另一个包中销售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中的正常

我有两个项目,其中一个是另一个的依赖项。因为它们是私人项目,所以不会像普通项目一样发布到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中的正常依赖项:

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
代理也不适合。