我有一个结构如下的项目:
.
├── 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
很不错) )。
答案 0 :(得分:3)
py_modules
用于声明位于项目根目录的单个文件模块。需要通过在module1
中列出它们来声明包目录的子目录,例如module2
和packages
:
packages=["packagename", "packagename.module1", "packagename.module2" ...]
答案 1 :(得分:0)
这是需要通过我正在使用的虚拟环境使用python命令进行安装的问题(与我安装软件包时在终端中活动的环境相反),而不是包装问题!