当前位置: 首页 > 面试题库 >

Python 3中的相对导入无法正常工作

唐焕
2023-03-14
问题内容

我有以下目录:

mydirectory
├── __init__.py
├── file1.py 
└── file2.py

我在file1.py中定义了一个函数f。

如果在file2.py中,我这样做

from .file1 import f

我收到以下错误:

SystemError:父模块“”未加载,无法执行相对导入

为什么?以及如何使其工作?


问题答案:

由于file1file2位于同一目录中,因此您甚至不需要__init__.py文件。如果您要扩大规模,请留在那里。

要将某文件导入同一目录中的文件,只需执行以下操作

from file1 import f

即,您不需要执行相对路径,.file1因为它们位于同一目录中。

如果将要运行整个应用程序的主要功能,脚本或任何其他工具位于另一个目录中,那么您将必须使所有内容都与正在执行的位置有关。



 类似资料:
  • 我正在尝试开始使用JSF2.0。我正在尝试一个基本的导航示例,但它不能正常工作。 文件结构如下: 我已经在web.xml中配置了映射: 我相信我搞砸了映射或相对路径。我发现了一些建议,认为唯一的映射应该是带有*.xhtml的映射,但我并不真正理解为什么以及如何处理页面的多个子文件夹。 如有任何帮助,不胜感激,谢谢

  • 我创建了一个简单的演示项目来测试Android Jetpack导航组件的默认后台功能<我有一个主要活动和两个片段。应用程序运行时会显示主片段。主片段有一个按钮。点击导航到另一个片段<但是每当我按下“系统后退”按钮时,我的整个应用程序就完成了,而不是通常的后堆栈行为,我应该看到主片段<感谢您的帮助。提前谢谢 代码如下: main活动。千吨 活动_main。xml(主要活动的布局) HomeFragm

  • 问题内容: 我在Java中使用以下使用selenium的代码。我要添加4秒的pageLoadTimeout,但是,驱动程序将继续等待,直到整个页面加载完毕。有什么帮助吗? 问题答案: 解决该 问题的方法是将您的 版本升级到 v3.5.0 。这是有效的代码块,并且使用 最少的代码即可生成您自己的代码: 代码块: 控制台输出: 捕获WebDriverException 代码块: 控制台输出:

  • 所以我有一个带有日期时间值的输入(从DB获取值),我使用jQuery日期时间选择器来更改日期/时间。 这是我的输入 这是我的Datetimepicker配置: 使用此配置,Datetimepicker将始终从现在开始的日期时间作为默认值。如果我删除选项,我可以在输入中看到数据库中的实际日期/时间。 信息:我在数据库中的日期不是weekend,与现在一样新()。 所以我的问题是,我怎么能使用Date

  • 问题内容: 根据python文档,自python 2.5开始支持相对导入和内部包引用。我当前正在运行Python 2.7.3。因此,我尝试在自己的程序包中实现此功能,以便将其用于更简单的导入。我很惊讶地发现它引发了SyntaxError异常,我希望有人可以帮助您找到原因。 我设置了一个测试目录进行测试: 两个__init__.py模块都为空。其他模块是: 当我尝试导入second_level模块时

  • 问题内容: 尽管我很确定这是昨天或前一天工作的,例如,在IE10中不再起作用。我已经测试了我的浏览器,但是它不再起作用了。还有谁有相同的问题吗?或者,它永远都行不通吗? 问题答案: IE不支持输入type =“ number”,但您可以使用jQueryUISpinner小部件。它非常易于使用,并且具有许多对开发人员友好的API。