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

Python包:相关导入

齐琦
2023-03-14
app
  |- __init__.py
  |- core
        |- __init__.py
        |- corefile.py

  |- module1
        |- __init__.py
        |- main.py

__init__.py文件为空。我正在运行Python2.7.1。

main.py
from .core import *

运行python main.py会导致valueerror:尝试在非包中进行相对导入

类似问题:关于相对python导入的最终答案,如何在python中进行相对导入?,在python中进行相对导入

共有1个答案

咸琪
2023-03-14

简而言之,您只能从本身被导入的包中使用相对导入。

例如,如果您有:

$ cat run.py
from app.module1 import main
main.main()
$ python run.py

然后,您可以在app/module1/main.py中使用相对导入(尽管它需要是from..core import foo,因为core/main.py高一级)。

 类似资料:
  • 本文向大家介绍Python导入模块包原理及相关注意事项,包括了Python导入模块包原理及相关注意事项的使用技巧和注意事项,需要的朋友参考一下 包的使用 1.首次导入模块发生的事情3件事情 先产生一个执行文件的名称空间: 1.创建模块文件的名称空间 2.执行模块文件中的代码 将产生的名字放入模块的名称空间中 3.在执行文件中拿到一个指向模块名称空间的名字 2.什么是包? ​ 它是一系列模块文件的结

  • 我有以下项目结构: start.py mod1.py MOD2.PY 现在可以通过命令行来工作。为什么会有这些差异?

  • 问题内容: 似乎这里已经有很多关于python 3中相对导入的问题,但是经过许多讨论之后,我仍然找不到我问题的答案。所以这是问题。 我有一个如下所示的包裹 我在中只有一行: 现在,我在的文件夹中package,然后运行 我收到消息 但是如果我在的父文件夹中package,则运行: 一切都好。 现在我的问题是: 当我位于的文件夹中时,根据我的理解,我在test_A子软件包中运行模块,原因是,该模块.

  • 主要内容:Python包的导入《Python包》一节中已经提到,包其实就是文件夹,更确切的说,是一个包含“__init__.py”文件的文件夹。因此,如果我们想手动创建一个包,只需进行以下 2 步操作: 新建一个文件夹,文件夹的名称就是新建包的包名; 在该文件夹中,创建一个 __init__.py 文件(前后各有 2 个下划线‘_’),该文件中可以不编写任何代码。当然,也可以编写一些 Python 初始化代码,则当有其它程序文

  • 本文向大家介绍Golang import本地包和导入问题相关详解,包括了Golang import本地包和导入问题相关详解的使用技巧和注意事项,需要的朋友参考一下 1 本地包声明 包是Go程序的基本单位,所以每个Go程序源代码的开始都是一个包声明: 这就是包声明,pkgName 告诉编译器,当前文件属于哪个包。一个包可以对应多个*.go源文件,标记它们属于同一包的唯一依据就是这个package声明

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