首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3.6.1找不到包和模块[导入]

Python 3.6.1找不到包和模块[导入]
EN

Stack Overflow用户
提问于 2020-06-09 00:05:53
回答 2查看 201关注 0票数 0

我正在启动一个Python项目,并且我已经按照以下方式在包和子包中构建了我的代码:

代码语言:javascript
复制
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

可以在子包之间导入模块,但是,当我尝试从内部导入triggers子包时。/examples或./source:

代码语言:javascript
复制
import definitions.triggers

我得到了这个错误:

代码语言:javascript
复制
ModuleNotFoundError: No module named 'definitions.triggers'

下面是sys.path变量值:

代码语言:javascript
复制
/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版本中,这不会发生在我身上。我不明白为什么我找不到triggers子包。我错过了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-09 01:49:18

在我的python版本中似乎已经有了一个“定义”模块。

下面是我遵循的步骤。首先,我导入了定义模块。然后我将加载的模块打印出来。最后,我意识到包/模块的路径与我的项目所在的位置不一致。

代码语言:javascript
复制
import definitions
import sys
print('\n'.join(sys.modules))

它输出:

代码语言:javascript
复制
...
source.genetic_algorithm
definitions

然后,您可以通过执行以下操作来获取模块的位置:

代码语言:javascript
复制
print(sys.modules['definitions'])
票数 0
EN

Stack Overflow用户

发布于 2020-06-09 00:26:20

您正在尝试进行相对导入,这需要一个前导句点('.')性格。试一试

代码语言:javascript
复制
from .definitions.triggers import <function>

更多细节请访问The Python Import System docs

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62266385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档