Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法导入模块:在工作文件中找不到模块,但在另一个文件中可以正常工作_Python_Jupyter Notebook_Python Import_Python Module_Python Packaging - Fatal编程技术网

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