Python 无法导入模块:在工作文件中找不到模块,但在另一个文件中可以正常工作
我有以下文件结构Python 无法导入模块:在工作文件中找不到模块,但在另一个文件中可以正常工作,python,jupyter-notebook,python-import,python-module,python-packaging,Python,Jupyter Notebook,Python Import,Python Module,Python Packaging,我有以下文件结构 Working Directory | |-- Package | |-- __init__.py | |-- FirstModule.py | |-- SecondModule.py | |-- TestingFile.ipynb | |-- WorkingFile.ipynb FirstModule.py 定义函数: 返回n+1 第二模块.py 导入第一个模块 def func2n: value=FirstM
Working Directory
|
|-- Package
| |-- __init__.py
| |-- FirstModule.py
| |-- SecondModule.py
| |-- TestingFile.ipynb
|
|-- WorkingFile.ipynb
FirstModule.py
定义函数:
返回n+1
第二模块.py
导入第一个模块
def func2n:
value=FirstModule.funcn
返回n,值
当我将任何一个模块导入TestFile.ipynb时,它们都可以正常工作,如下所示:
TestingFile.ipnyb
但是,如果我在WorkingFile.ipynb中并尝试导入第二个模块,则会收到ModuleNotFoundError。更具体地说:
WorkingFile.ipynb
从包导入第二个模块作为sm
从包导入第一个模块作为fm
--------------------------------------
ModuleNotFoundError回溯上次最近的调用
在里面
2作为np导入numpy
3.
-->4从软件包导入第二个模块作为sm
5从包装导入第一个模块作为fm
中的~\Documents\Jupyter Notebooks\Working Directory\Package\SecondModule.py
26从日期时间导入日期时间
27
-->28将第一个模块作为fm导入
29
30个常数
ModuleNotFoundError:没有名为“FirstModule”的模块
我是否忘记了模块在其包含的包之外协同工作所需的某些东西?问题是SecondModule.py中的导入语句 我能够使用您的示例重现错误,并且当我将import语句从
import FirstModule.py
到
一切都很好。不应使用文件名,即从导入语句中删除.py
导入模块时,应显式使用包名,或者使用相对导入,即
from . import FirstModule
或者如果您只需要特定的对象/函数
from .FirstModule import some_function
第一,导入时不要使用.py;第二,必须从工作目录开始,例如从package.firstmodule导入所需内容或导入软件包。firstmodule@Matiiss对不起,你首先关心的是问题中的一个拼写错误。在我的实际代码中,它没有.py。我已经更正了问题中的错误。谢谢!py实际上只是我问题中的一个输入错误;但是,将SecondModule.py中的import FirstModule更改为from。导入第一个模块修复了我的问题。
from . import FirstModule
from .FirstModule import some_function