python - ModuleNotFoundError 当它实际上在路径中时
问题描述
我尝试通过控制面板('c:\projects\parser')将其直接添加到路径中,并在尝试导入之前将其附加。它适用于子文件夹,而不是父母。
.
└── parser
└── tests
├── __init__.py
└── utils
├── __init__.py
└── rebuild_parsers.py
这是我尝试过的。
C:\>python
Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.append('c:\\projects\\parser')
>>> from tests.utils.rebuild_parsers import build_lexer_parser
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'tests.utils'
>>> sys.path.append('c:\\projects\\parser\\tests')
>>> from utils.rebuild_parsers import build_lexer_parser
我真的不明白为什么它不起作用。两个文件夹(tests 和 utils)都有一个__init__.py
文件
当然,如果我从解析器文件夹运行它,它就可以工作,我只是想了解为什么它没有将它作为一个模块。
C:\Projects\parser>python
Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from tests.utils.rebuild_parsers import build_lexer_parser
>>>
解决方案
尝试了您给出的相同树结构。它似乎对我有用。
使用 Mac 和 python3.8.7。
这是树:
% tree parser
parser
└── tests
├── __init.py__
└── utils
├── __init.py__
└── rebuild_parsers.py
这是我的 rebuild_parsers.py 包含的内容:
# rebuild_parsers.py
def exmaple():
print("Hello")
这是我在终端中编写的代码:
>>> import os, sys
>>> sys.path.append(os.path.join(os.getcwd(), "parser"))
>>> from tests.utils.rebuild_parsers import exmaple
>>> example()
它似乎奏效了。你能检查一下吗。
推荐阅读
- git - husky pre-push 以代码 0 退出,但推送从未发生
- sql - 在什么情况下 SQL 将使用表的索引
- centos - 最新版本的 CentOS 是否支持 Secure Boot?
- javascript - 如何从 php json_encode 正确解析 Json
- python - PyObject 与 PyTypeObject
- python - 如何找到这个CNN模型(keras)的ROC曲线和AUC分数
- swift - UILabel lineBreakMode 设置为 .ByTruncatingTail 导致 RTL 阿拉伯文本出现错误
- reactjs - 如何在 React 中禁用 event.preventDefault
- python - TypeError:具有不同参数的python多重继承
- amazon-web-services - AWS ECS Fargate 禁用运行状况检查