首页 > 解决方案 > 如果安装文件未命名为 setup.py,为什么包安装失败?

问题描述

当我想将一个自写的包分成两个包时,我遇到了这个问题。我添加了另一个setup.py并给了两个新名称以将它们分开。但是,此时安装包不起作用。

一个最小的例子:

src
+--test_package
|   +--__init__.py
+--setup_package.py

其中__init__.py为空并setup_package.py包含基本设置代码

from setuptools import setup

setup(name='package',
      version='0.1',
      packages=['package',],
      )

我创建一个包python setup-package.py sdist --formats=zip并尝试使用pip install ./dist/package-0.1.zip. 这失败了,因为它找不到setup.py. 如果我重命名setup-package.pysetup.py,然后重新构建包,我可以毫无问题地安装。SOURCES.txt未按setup.py要求列出。

我尝试过的其他一些事情:重命名setup-package.py安装而不重建也会产生错误。添加一个空的setup.py并使用setup-package.py也不起作用。

我是一个非常关注包装的初学者,但我没有看到任何setup.py绝对需要并且必须具有特定名称的警告。检查这篇文章我也找不到任何类似的警告,尽管我还没有深入研究。但是在同一个目录中拥有两个包并想要构建它们似乎并不是一个极端的用法,在这种情况下你想要有两个setup.py文件。这显然是不可能的,所以你需要给他们不同的名字,但这样就行不通了。

为什么会这样?解决这个问题并不太难,但这让我很困惑,我想知道为什么会发生这种情况(以及你打算如何做事)。

标签: pythonpackagesetuptoolssetup.py

解决方案


推荐阅读