创建了 PyPi 包,但安装后无法导入模块

bin*_*der 1 python setuptools pypi

我有一个这样结构的项目:

.
??? LICENSE
??? README.md
??? setup.py
??? src
    ??? __init__.py (with name="packagename")
    ??? module1
    ?   ??? __init__.py (with import for each code file)
    ?   ??? (several code files)
    ??? module2
        ??? __init__.py
        ??? (similar structure to module1, total of 4 modules like this)
Run Code Online (Sandbox Code Playgroud)

我已经创建了 dist 文件并将它们上传到 TestPyPI 并安装到测试项目中。我希望能够导入诸如 的模块import packagename.module1,但它给了我No module named packagename.

我的setuptools.setup参数中setup.py包含这样的条目:

packages=["packagename"],
package_dir={"packagename": "src"},
py_modules=["packagename.module1", "packagename.module2" ... ]
Run Code Online (Sandbox Code Playgroud)

知道为什么我在安装软件包后似乎无法导入吗?

我在项目中的 src 之外有各种示例测试脚本,我可以在其中访问模块from src.module1 import ClassName(尽管如果可能src.module1packagename.module1在导入时替换它会很好)。

jwo*_*der 5

py_modules用于声明位于项目根目录的单文件模块。包目录的子目录,如您的module1module2需要通过将它们列出来声明packages

packages=["packagename", "packagename.module1", "packagename.module2" ...]
Run Code Online (Sandbox Code Playgroud)