问题标签 [relative-import]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
163 浏览

python - Python 3.8.6 中的 ImportError

我正在使用 python 3.8.6 使用模块 Flask 构建一个简单的 Web 应用程序,文件夹结构看起来完全像这样:

其中__init__.py有一个函数被调用create_app(),这个函数必须由 my 访问main.py

在我的main.py我导入create_app()这样的:

但是当我尝试运行 my 时main.py,会引发以下错误:

我已经尝试在文件夹名称之前不带点导入,例如from site import create_app,但这也不起作用,错误消息只是更改为ImportError: cannot import name 'create_app' from 'site' (C:\Python38\lib\site.py).

0 投票
1 回答
121 浏览

python-3.x - python 3中的相对导入错误没有已知的父包

我正在尝试在 feature1 和 feature2 目录下的 main 中导入 common/util 模块。我使用了 from ..common import util 但得到 ImportError:尝试相对导入但不知道父包。有没有办法在 main.js 中导入 common/util。

目录结构

0 投票
3 回答
60 浏览

python - python 3 和相关导入的问题

我有这样的布局:

example_project.py使用some_library_code.py
我运行的代码example_project.py
***\src>: python examples\example_project.pyImportError: attempted relative import with no known parent package
阅读了一些关于 SO 的答案,发现我需要一些结构
sys.path.append(os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir)))
存在example_project.py

我的example_project.py导入部分如下所示:

但这不起作用并且显示相同ImportError

UPD
如果我更改from ..library *****from library *****then 它可以工作,但 IDE 无法识别导入的类型并在import子句周围显示错误

0 投票
1 回答
35 浏览

python - Pycharm python调试器无法运行包含相对导入的文件

我试图将包含要调试的文件的文件夹标记为Source root ,但没有成功。

[Pycharm 链接] https://intellij-support.jetbrains.com/hc/en-us/community/posts/360010615139-python-debugger-does-not-work-with-files- contains-relative-import

下面是我的调试配置: 在此处输入图像描述

我正在使用 Pycharm 2021.1(专业版)

0 投票
0 回答
75 浏览

python - 顶级包之外的相对导入

经过多次搜索和尝试,我还没有找到解决这个问题的方法......

我正在使用 Sphinx 为 Python 包生成文档。您可以在此处查看代码:https ://github.com/jajimer/energym/tree/documentation 。我们感兴趣的包部分组织如下:

文件夹结构

energym/docs/source/conf.py我配置的路径如下:

现在我正在尝试将这个模块及其所有组件energym/doc/source/pages/API-reference.rst的描述添加到 API 文档 () 中。utils为此,我正在使用 Sphinx 的autosummary

所以,在做完之后,和make clean && make html的文档是完美创建的,但不是. 根据 Sphinx 的说法,会发生以下异常:utils.commonutils.rewardsutils.rewardsutils.controllers

这是我的问题。我该如何解决?是相对路径问题吗?我已经看到问题是由于以下导入引起的:

但我真的不知道原因,因为路径似乎很完美。

0 投票
1 回答
90 浏览

python - 当前脚本需要运行主文件时从父目录的Python相对导入

我正在处理我们具有以下目录结构的代码

所有文件夹都是包。
我有两个要求:

  1. 我需要能够在 A_task 中导入 M_task 模块。
    我能够使用
    from H.M_task import method
  2. 在 M_task 中导入 C_task

在第二种情况下,我面临几个问题。
当我在本地机器上运行代码时可以使用绝对导入,但在部署代码时将无法使用绝对导入。所以这是毫无疑问的。
仅当我仅将from ..C_task import methodM_task 用作模块时才使用。但在某些情况下,我需要使用 main 函数将 M_task 作为脚本运行。在这种情况下,M_task 没有父文件夹,因此相对导入不起作用。
最后的手段是将父文件夹附加到sys.path. 但我想尽可能避免这种解决方案。有没有一种更清洁的方法可以实现我想要在这里实现的目标?

0 投票
0 回答
74 浏览

python - 如何修复错误:ImportError:尝试使用没有已知父包的相对导入

我有:db = SQLAlchemy()init .py 中,我想将 db 导入到 models.py

当我尝试这样做时:from . import db我收到错误:ImportError:尝试使用没有已知父包的相对导入

我尝试了几件事,例如:

当我运行from __init__ import db它时,在我运行 main.py 之前它没有显示错误,然后它显示错误:ModuleNotFoundError: No module named ' init '

我的程序结构如下:

请帮忙!

0 投票
2 回答
275 浏览

python - Python 导入模块,在目录和目录级别上都有空格

我正在更详细地“重新发布”这个问题,因为我觉得它第一次被误解了。我有一个看起来像这样的文件夹结构:

我需要 file_1.pyfile_2.py. 请注意file_2.py,相对于file_1.py,是向上 3 个目录,然后向下是 3 个目录。理论上,我会这样写相对导入:

但是,由于子文件夹中的间距,这是无效的。绝对导入更糟糕,因为基本文件夹也包含空格:

有了这个,我怎样才能访问file_2.py没有的内容:

  1. 重命名文件夹(我不拥有它们,所以即使我想也不能)
  2. 不使用sys.path.append()(在我们的生产环境中效果不佳)
  3. 搬家file_2.py(因为组织必须留在原地)

任何帮助将不胜感激!

0 投票
1 回答
50 浏览

python - 从远离 main() 的文件中导入 Python 模块

我有一个 Python 文件的文件夹结构,如下所示:

我需要将(具有主文件的文件)作为包file_1.py导入。file_2.py请注意file_2.py,相对于file_1.py,是向上 3 个目录,然后向下是 3 个目录。理论上,我会这样写相对导入:

但是,由于子文件夹中的间距,这是无效的。绝对导入更糟糕,因为基本文件夹也包含空格:

有了这个,我如何file_2.py在没有以下情况下作为模块导入:

  1. 重命名文件夹(我不拥有它们,所以即使我想也不能)
  2. 不使用sys.path.append()(在我们的生产环境中不起作用)
  3. 搬家file_2.py(因为组织必须留在原地)
  4. 希望不要安装任何其他库(不是绝对必要的,但我将新库添加到我们的生产环境中将是一个完整的过程)

任何帮助将不胜感激!

0 投票
3 回答
68 浏览

python - 从父目录导入 Python 相对

在过去的几天里,我阅读了许多关于相对 Python 导入的文档,但遇到了以下文件夹结构的问题:

file_2.py我想访问file_1.py. 我尝试添加以下内容,file_2.py但似乎没有一个工作:

我现在真的很迷茫,似乎无法理解为什么会这样。我现在可能已经阅读了 10 种关于相对进口的不同指南,但仍然无法弄清楚原因。

注意,如果我把它放在file_2.py里面parent_folder,然后添加import subfolder1.file1它导入好,但我不能file_2.py从它的位置移动或使用sys.path.append()

有没有人比我有更多的模块经验?谢谢!