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

时间:2018-09-11 19:37:41

标签: 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)

我已经创建了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" ... ]

有什么主意,为什么我在安装软件包后似乎无法导入?

我在项目的src之外有各种示例测试脚本,我可以以from src.module1 import ClassName的身份访问模块(尽管在可能的情况下,在导入时将src.module1替换为packagename.module1很不错) )。

2 个答案:

答案 0 :(得分:3)

py_modules用于声明位于项目根目录的单个文件模块。需要通过在module1中列出它们来声明包目录的子目录,例如module2packages

packages=["packagename", "packagename.module1", "packagename.module2" ...]

答案 1 :(得分:0)

这是需要通过我正在使用的虚拟环境使用python命令进行安装的问题(与我安装软件包时在终端中活动的环境相反),而不是包装问题!