【发布时间】:2020-09-27 16:09:31
【问题描述】:
我正在启动一个 Python 项目,并按以下方式在包和子包中构建了我的代码:
FCM
|-- definitions
| |-- Classifiers
| |-- __init__.py
| `-- triggers
| |-- __init__.py
| |-- probability.py
|-- examples
| |-- __init__.py
| |-- compute
| `-- study
`-- source
|-- __init__.py
|-- FastComposedModels_pb2.py
|-- genetic_algorithm
`-- trigger_evaluator.py
子包之间的模块导入有效,但是当我尝试从 ./examples 或 ./source 内部导入触发器子包时:
import definitions.triggers
我收到此错误:
ModuleNotFoundError: No module named 'definitions.triggers'
这是 sys.path 变量值:
/apps/PYTHON/3.6.1/INTEL/lib/python3.6/site-packages
/home/projects/FCM
/apps/PYTHON/3.6.1/INTEL/lib/python36.zip
/apps/PYTHON/3.6.1/INTEL/lib/python3.6
/apps/PYTHON/3.6.1/INTEL/lib/python3.6/lib-dynload
/apps/PYTHON/3.6.1/INTEL/lib/python3.6/site-packages/pytz-2017.2-py3.6.egg
/apps/PYTHON/3.6.1/INTEL/lib/python3.6/site-packages/packaging-16.8-py3.6.egg
/apps/PYTHON/3.6.1/INTEL/lib/python3.6/site-packages/appdirs-1.4.3-py3.6.egg
/apps/PYTHON/3.6.1/INTEL/lib/python3.6/site-packages/cycler-0.10.0-py3.6.egg
/apps/PYTHON/3.6.1/INTEL/lib/python3.6/site-packages/nose-1.3.7-py3.6.e
我在 Linux 中使用 Python 3.6.1,但是,在任何其他平台和 python 版本中都不会发生这种情况。我不明白为什么我找不到触发器子包。我错过了什么吗?
【问题讨论】:
标签: python import package python-import