首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从子文件夹导入模块时出现问题

从子文件夹导入模块时出现问题
EN

Stack Overflow用户
提问于 2019-03-12 20:27:53
回答 1查看 92关注 0票数 1

我正在尝试使用uncertainty库,并将存储库克隆到我的目录结构中,如下所示:

代码语言:javascript
复制
.Lux/
├── generateFeatures.py
├── generateLexicons.py
├── __init__.py
├── res
│   ├── __init__.py
│   ├── test2.py
│   └── uncertainty
│       ├── __init__.py
│       ├── test1.py
│       └── uncertainty
│           ├── classifier.py
│           ├── lib
│           │   ├── __init.py__
│           │   └── nlp
│           │       ├── __init__.py

我的两个test.py具有相似的内容,它们所要做的就是导入不确定性分类器

test1.py可以完美地工作

代码语言:javascript
复制
from uncertainty.classifier import Classifier

但是test2.py

代码语言:javascript
复制
from uncertainty.uncertainty.classifier import Classifier

收益率:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/home/lucas/Lux/Lux/lib/python3.5/site-packages/pkg_resources/__init__.py", line 359, in get_provider
    module = sys.modules[moduleOrReq]
KeyError: 'uncertainty.lib.nlp'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from uncertainty.uncertainty.classifier import Classifier
  File "/home/lucas/Lux/res/uncertainty/uncertainty/classifier.py", line 9, in <module>
    from .lib.nlp import summarizer
  File "/home/lucas/Lux/res/uncertainty/uncertainty/lib/nlp/__init__.py", line 3, in <module>
    VERBS_PATH = resource_filename('uncertainty.lib.nlp', 'verbs.txt')
  File "/home/lucas/Lux/Lux/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1144, in resource_filename
    return get_provider(package_or_requirement).get_resource_filename(
  File "/home/lucas/Lux/Lux/lib/python3.5/site-packages/pkg_resources/__init__.py", line 361, in get_provider
    __import__(moduleOrReq)
ImportError: No module named 'uncertainty.lib'

为什么test1.py可以工作,而test2.py不行?

更新

我已经在每个没有__init__.py的文件夹中放置了空的out,但是仍然不能解决这个问题。

我曾尝试将外部的uncertainty文件夹重命名为其他名称,认为它可能是一个错误的解析名称,但同样不起作用。

EN

回答 1

Stack Overflow用户

发布于 2019-03-13 14:24:20

由于lib/nlp文件夹中的__init__.py文件而出现问题。正如thom747在评论中指出的那样,VERBS_PATHuncertainty/lib/nlp中的verbs'txt提供了一条路径。

test1.py导入时,此路径是正确的,但从test2.py导入时,它会在父uncertainty目录中查找lib/nlp,其中包含test2.py文件。它找不到一个,因此你会得到一个ImportError

修复

只需将uncertainty/lib/nlp/__init__.py文件中的VERBS_PATH赋值更改为

代码语言:javascript
复制
VERBS_PATH = resource_filename('uncertainty.uncertainty.lib.nlp', 'verbs.txt')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55121468

复制
相关文章

相似问题

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