我有一个名为mltester
的Python包,其中包含两个子包(actions
, dialogs
)和一个主脚本ml_tester.py
,其结构如下:
+ <ProjectFolder>
+---+ <mltester>
| +---- <actions>
| +---- <dialogs>
| +---- ml_tester.py
| +---- __init__.py
+---- setup.py
我的__init__.py
文件如下:
import actions
import dialogs
import ml_tester
在 ml_tester.py
中,我会做一些类似这样的事情:from actions import *
from dialogs import *
在从Eclipse运行时一切都正常。当执行pip install
时,以下setup.py
可以正常工作:
from setuptools import setup
setup(
name="MLTester",
version="1.0",
packages=["mltester",
"mltester.actions",
"mltester.dialogs"],
install_requires=[
"matplotlib",
],
entry_points='''
[console_scripts]
ml_tester_gui=mltester.ml_tester:main
'''
)
但是当我从包列表中删除"mltester.actions"
和"mltester.dialogs"
后,现在会出现以下错误:
但是当我从包列表中移除"mltester.actions"
和"mltester.dialogs"
后,现在我收到一个类似这样的错误:
File "/usr/local/lib/python2.7/dist-packages/mltester/__init__.py", line 1, in <module>
import actions
ImportError: No module named actions
我不明白为什么只列出包含mltester
包还不够。当然,我可以简单地将这些包添加回去,但现在我认为我错过了更多概念上的东西。
find_packages()
通常会选择测试文件,这通常不是您想要的。 - shuckcfind_packages
中的exclude
参数就是用来排除特定包的。 - hoefling