当前位置: 首页 > 知识库问答 >
问题:

Python 3"侧身"相对导入[重复]

高玮
2023-03-14

我有一个像这样的文件结构

math/
    snippets/
        numerical_methods.py
    homework1/
        main.py
    homework2/
        main.py

在家庭作业1的主要部分。是的,我想做什么

from ..snippets.numerical_methods import fixed-point-iteration

这样我就不必为我使用的每个任务重写这个算法。但我得到的错误"父模块"未加载,不能执行相对导入".我做错了什么?

共有1个答案

古弘
2023-03-14

您不能从层次结构中比主脚本更高的位置导入,即比home work1文件夹更高的位置导入。您可以做的是将您想要的脚本的路径添加到导入路径:

import sys
sys.path.append("..")
from snippets.numerical_methods import fixed-point-iteration
 类似资料:
  • 可能的重复: 当存在同名的本地模块时,如何访问Python中的标准库模块? 我使用的是Python2.6。 在myscript中,我有: 由于Python的相对导入机制,import json并不像我想要的那样导入内置库,而是将我的自定义json包导入到当前名称空间中。 在这种情况下,有没有一种方法可以禁用Python中的相对导入,或者至少有一种黑客可以避免它?否则,我将不得不将我的包重命名为其他

  • 我刚刚完成了一门关于python for Data Science的在线课程。我想在Pycharm edu中编写一些自己的代码。我以前也这么做过,一切都很顺利。我在Linux Mint中通过Pycharm和控制台下载了“numpy”和“matplotlib”。当我导入numpy并导入matplotlib(并且不编写其他内容)时,我的程序运行正常,但是当我编写“import matplotlib.p

  • python 3.7.7,并在python 3.6.0上试用 我正在使用Django服务器,在我的views.py中 我正试着在探测器里得到我的函数。 我,我把我的探测器文件作为一个包返回到一个文件中, 我阅读了关于这个问题的所有stackoverflow问题。

  • 问题内容: 我的$ GOPATH是 我当前的golang版本: 我在这个工作区下有多个golang项目,所以这是目录的结构 在proj1的main.go中,我将使用该项目下其他软件包的导入,如下所示: 但是,当我运行“ go build”时,我一直在收到错误消息: “ 无法加载包:非本地包中的本地导入“ ../package” 如果我不想使用相对的包路径,例如使用它: 然后一切都会正常。 如果使用

  • 问题内容: 大家好-我正在用Python中的相关知识来表达自己的观点。我已经阅读了30篇文档,并在SO和其他论坛上阅读了很多帖子-似乎还是行不通。 我的目录结构目前看起来像这样 我希望expander.py和language_id.py可以访问功能模块。我运行python main.py,可以从components.expander import 和components.language_id i

  • 我正在学习用python编程,我在从包中的模块导入时遇到了问题。我使用的是Visual studio代码和Python 3.8.2 64位。 我的项目目录 在<code>电子商务/产品中。py文件我有: 这样我就可以从< code > ecommerce/Database . py 文件中导入< code>Database类。但是我出错了