问题标签 [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 投票
1 回答
128 浏览

python - python 3.2.3中奇怪的相对导入解析错误

我在我的程序中遇到以下导入解析错误:

的内容/usr/local/lib/python3.2/dist-packages/homie/translators/is24/rest/translator.py

此外,相关模块存在:

为什么 python3 在这里尝试进行绝对导入?我只在 Debian 7 下使用 python 3.2.3 遇到这个问题。在带有 python 3.4.1 的 Arch 下,它工作得很好。

我错过了什么吗?

0 投票
1 回答
21175 浏览

python - Python从并行目录导入模块

我将如何组织我的 python 导入,以便我可以拥有这样的目录。

然后在/project/test/tests.py里面就可以导入classes.py了

我在 tests.py 中有这样的代码

我得到了错误

有谁知道该怎么做?

0 投票
1 回答
1914 浏览

python - 如何使用 importlib 在 python 中导入模块?

我有这个项目结构:

脚本

我想将里面的类Scripts/A/AA/AAA.py导入Scripts/B/BB/BBC.py. 我使用了一些解决方案:

  1. from AAA import *给我ImportError: No module named AAA
  2. from Scripts.A.AA.AAA import *给我ImportError: No module named Scripts.A.AA.AAA
  3. from ..A.AA.AAA import *给我ValueError: Attempted relative import beyond toplevel package
  4. from ....A.AA.AAA import *给我ValueError: Attempted relative import in non-package

我该怎么办 ?

编辑1:

我改变了项目的结构,现在是这样的:

脚本

我编写了这段代码来导入所有类:

这导致:

任何的想法?

编辑2:

我已经解决了这个问题;我没有任何__init__.py.elements

0 投票
1 回答
683 浏览

python-3.x - Python 3 相对循环导入

文件模块/a.py

文件模块/b.py

这会导致 ImportError,告诉它不能导入 a(或 b,取决于先导入哪个)。但是,将其中一个(分别)更改为绝对导入有效。

选择

但是会导致 NameError。

有人可以解释这种行为吗?

0 投票
1 回答
449 浏览

python - Python 3“横向”相对导入

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

在作业 1 的 main.py 中,我想做

这样我就不必为使用它的每个作业重新编写此算法。但是我收到错误“未加载父模块,无法执行相对导入”。我究竟做错了什么?

0 投票
1 回答
114 浏览

python - 可导入模块的Python相对导入不起作用

我需要使用 myFormatIO 函数,它是 neo 库的一部分。我可以成功导入 neo 和 neo.io 但我不能使用 MyFormatIO 函数。import neo.io不吐出任何错误但from neo.io import MyFormatIO返回NameError: name 'MyFormatIO' is not defined。如果 MyFormatIO 是 neo.io 的一部分,这怎么可能?我在 CentOS 上运行 python2.7。

0 投票
1 回答
550 浏览

python - Python 3.4 上的烧瓶错误?如果应用程序包含相对导入,则开发服务器无法运行

根据设计,Python 3不能将包含相对导入的模块作为脚本运行。尝试这样做会产生以下错误:

解决方案是调用模块python -m mypackage.run而不是更熟悉的python mypackage/run.py.

在 Flask 中,后者是通常运行开发服务器的方式。但是,Flask 开发服务器会立即生成一个重新加载代码的子进程(然后在磁盘上更改文件时重新加载代码)。

结果是这样的:

所以现在服务器正常启动,但子进程重新加载代码不正确。

0 投票
1 回答
57 浏览

python - python如何从父子的儿子导入

我有这个层次结构:

file.py包含类myClass

我曾经在 myfile.py中执行此操作

现在我改变了我的层次结构,并放入myfile.py了一个名为 的文件夹newFolder,所以新的层次结构是:

我改变了路径:

但我进入invalid syntaxspiders.spiders

请帮忙

0 投票
1 回答
866 浏览

django - 来自外部应用程序的 Django 相对导入

我是 2 Scoops of Django 1.8 读者。第 29 章(那些随机实用程序呢)建议创建一个core应用程序来存储常用代码。它还建议您可以使用此语法从中导入代码:

例如

这种相对导入似乎不起作用。我正在使用cookiecutter-django,我需要这样做:

我尝试将我的添加APPS_DIRpath

但这导致了导入冲突,因为现在有 2 个具有相同名称的模块,new_app并且projectname.apps.new_app.

我只想避免显式导入。有没有办法Installed Apps在不产生导入冲突的情况下将其包含在 python 路径中?关于外部应用程序导入的最佳做法是什么?

编辑:添加项目结构

0 投票
1 回答
32 浏览

python - python的导入不支持单元测试

我有以下目录树(Python 2.7):

a.py、b.py和c.py需要相互导入,所以我有两种选择:

  1. 使用相对导入,这意味着我必须从 ./pkg/main.py 或目录树顶部的另一个文件启动程序。这真的很好,但是当我对其中一个文件编写测试时问题就开始了。我无法在 ./main/A 中编写导入 a.py 的测试,因为 a.py 无法使用 b.py 和 c.py,所以唯一的方法是在 . /主要的。

  2. 将每个文件中 ./main 的绝对路径添加到sys.path中。这意味着我必须为所有文件编写相同的三行,如果我有 300 个文件而不是 3 个文件,那会很痛苦(而且很可能,不是最好的办法)。

所以我该怎么做?