python 中的 ModuleNotFoundError(spyder 项目)
ModuleNotFoundError in python (spyder project)
1.环境
我在 Windows 10 中使用 Anaconda/Spyder 工具工作。
我有一个 python 项目组织如下。
folder_project
test_all.py
folder_utils
__init__.py
function1.py
folder_tests
__init__.py
test_function1.py
init.py 文件是空文件。
实现我的代码的代码覆盖率(也许可以改进方法)的基本思想是:
- 一个python文件以不同的方式测试一个函数
test_function1.py 每次测试将包含一个函数:
def test_001():
...
test_all.py 文件将调用所有 test_functionXXX.py 文件的所有函数
在 Spyder 中,我注意在 PYTHONPATH 中添加 folder_project。
2。问题
我在导入 folder_tests 包时遇到错误...
我在test_all.py
import folder_tests.test_function1
def main():
# Testing function1
test_function1.test001()
我收到以下错误:
ModuleNotFoundError: No module named 'folder_tests.test_function1'
如果我只做
import folder_tests
我没有收到错误消息,但我对此无能为力...
如果我更改
中的导入语句
from folder_tests import test_function1
我收到以下错误:
ImportError: cannot import name 'test_function1' from 'folder_tests'
拜托,知道我该如何纠正吗?
在此先感谢您的帮助!
最佳,
小丑
错误的来源似乎与 python 无关,而是 spyder.
我停止并重新启动 spyder,它没有用,我简化了文件名,它起作用了,然后我重新使用以前的文件名,它仍然起作用......
有点头疼...
抱歉打扰了。
最佳,
小丑
Pierrot,关于你的回答,我同意,这很让人头疼,但我在两种情况下找到了问题的根源:
如果您引用的文件夹不在 Spyder 识别为项目文件夹的文件夹中,则会出现此问题。在您的情况下,这将是 folder_project。这可以通过转到 Projects->Open Project 进行测试,如果您 select 的文件夹未被识别为项目文件夹,它会告诉您,而不是打开它。可以通过 Project->New Project->Existing Directory
修复
文件夹名与文件名相同(Spyder 特定,使用其他 IDE(例如 pycharm 时不是问题)
我的文件夹名称与文件名称相同,例如名为 'email' 的文件夹和名为 'email.py' 的文件。当我尝试导入时,它引发了“ModuleNotFoundError:没有名为 'email'.
的模块
这是匹配文件和文件夹名称失败的版本:
import email.email as e
这是使用不同文件(添加和 's')和文件夹名称的版本:
import emails.email as e
1.环境
我在 Windows 10 中使用 Anaconda/Spyder 工具工作。 我有一个 python 项目组织如下。
folder_project
test_all.py
folder_utils
__init__.py
function1.py
folder_tests
__init__.py
test_function1.py
init.py 文件是空文件。 实现我的代码的代码覆盖率(也许可以改进方法)的基本思想是:
- 一个python文件以不同的方式测试一个函数
test_function1.py 每次测试将包含一个函数:
def test_001(): ...
test_all.py 文件将调用所有 test_functionXXX.py 文件的所有函数
在 Spyder 中,我注意在 PYTHONPATH 中添加 folder_project。
2。问题
我在导入 folder_tests 包时遇到错误...
我在test_all.py
import folder_tests.test_function1
def main():
# Testing function1
test_function1.test001()
我收到以下错误:
ModuleNotFoundError: No module named 'folder_tests.test_function1'
如果我只做
import folder_tests
我没有收到错误消息,但我对此无能为力...
如果我更改
中的导入语句from folder_tests import test_function1
我收到以下错误:
ImportError: cannot import name 'test_function1' from 'folder_tests'
拜托,知道我该如何纠正吗?
在此先感谢您的帮助!
最佳,
小丑
错误的来源似乎与 python 无关,而是 spyder. 我停止并重新启动 spyder,它没有用,我简化了文件名,它起作用了,然后我重新使用以前的文件名,它仍然起作用...... 有点头疼...
抱歉打扰了。
最佳,
小丑
Pierrot,关于你的回答,我同意,这很让人头疼,但我在两种情况下找到了问题的根源:
如果您引用的文件夹不在 Spyder 识别为项目文件夹的文件夹中,则会出现此问题。在您的情况下,这将是 folder_project。这可以通过转到 Projects->Open Project 进行测试,如果您 select 的文件夹未被识别为项目文件夹,它会告诉您,而不是打开它。可以通过 Project->New Project->Existing Directory
修复文件夹名与文件名相同(Spyder 特定,使用其他 IDE(例如 pycharm 时不是问题) 我的文件夹名称与文件名称相同,例如名为 'email' 的文件夹和名为 'email.py' 的文件。当我尝试导入时,它引发了“ModuleNotFoundError:没有名为 'email'.
的模块
这是匹配文件和文件夹名称失败的版本:
import email.email as e
这是使用不同文件(添加和 's')和文件夹名称的版本:
import emails.email as e