从不同的文件夹导入Python模块

山姆

我认为我要提出的问题是一个非常琐碎的问题,已经被许多人提出并因此得到了回答。我已经仔细研究了为该问题提供的解决方案,但是在我的情况下我认为该解决方案不起作用。

我有以下目录层次结构。

----a
-------__init__.py
--------------aa
------------------aa.py
------------------__init__.py
--------------bb
------------------bb.py
------------------__init__.py
-------a.py

我想做以下事情。

  1. 从文件a.py导入bb.py和aa.py的方法-通过在每个文件夹目录中使用__init__.py来完成
  2. 从aa.py导入bb.py(不起作用)
  3. 从a.py导入a.py(无效)

通过查看许多解决方案,我将__init__.py文件放置在每个文件夹目录中。

我用了:

import imp

foo = imp.load_source('module.name', 'path to the file') 

这行得通,但是由于必须对路径进行硬编码,因此我不确定这是否是可行的解决方案

目前,我正在通过将路径添加到sys目录来进行导入。我想要一个更具动态性的解决方案。

我的项目的文件夹层次结构深入到6-7级子目录,我需要一种解决方案来从7级导入1级模块。

如果有人能指出我所缺少的内容,我会感到很高兴。

莱斯尼克

您的应用程序的切入点是什么?例如,如果您从命令行启动aa.py文件,那么您将不走运。

“ Guido将程序包中正在运行的脚本视为反模式”(被拒绝的PEP-3122

程序包的入口点应位于程序包根目录中的某处。在您的情况下,这是一个文件a.py从那里,您像往常一样导入一些内部模块:

# contents of a.py
from aa import a

现在,关于从包装中导入的内容。

假设aa1.py与相同的目录中还有一个文件aa.py要从中导入,aa.py可以使用相对导入功能

# contents of aa.py
from . import aa1

这里的.意思是“在同一目录中”。

其他例子:

# contents of aa.py
from .. import a  # here .. means "one level above"
from ..bb import bb  # this will import your bb.py module

请注意,例如,如果您直接从命令行运行,所有导入将失败aa.py

更新:

...上面的例子并不目录的名称。这是python语法,表示“相同级别”,“高于一个级别”等。如果您需要从高于3个级别导入,则应编写:

from .... import my_module

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从不同目录/文件夹导入模块的正确语法

来自分类Dev

从不同的文件夹级别导入类-Python

来自分类Dev

无法从不同的文件夹链接\导入原始文件

来自分类Dev

从文件夹导入python模块

来自分类Dev

从不同包中以Python文件导入Cython模块

来自分类Dev

从不同包中以Python文件导入Cython模块

来自分类Dev

从不同的文件夹加载图像

来自分类Dev

使用Haskell源代码从不同的文件夹导入文件

来自分类Dev

从不同的子文件夹访问VBA导入特定的Excel文件

来自分类Dev

从Python中的相邻文件夹导入模块

来自分类Dev

Python-将模块导入文件夹之外

来自分类Dev

如何从相邻文件夹中正确导入python模块?

来自分类Dev

如何制作python导入模块和文件夹?

来自分类Dev

从文件夹导入python模块时出错

来自分类Dev

从不是子文件夹的另一个文件夹导入python文件

来自分类Dev

Python从不同的文件导入不同的结果

来自分类Dev

维护 2 个不同的 python 文件夹的导入问题

来自分类Dev

如何从文件夹导入模块

来自分类Dev

从特定文件夹导入模块

来自分类Dev

从不同的文件夹导入文件,添加具有从每个文件名提取的值的列?

来自分类Dev

文件位于不同文件夹时导入模块时出现问题

来自分类Dev

使用.htaccess从不同的文件夹加载文件

来自分类Dev

从不同的子文件夹中删除文件列表

来自分类Dev

从不同的文件夹中选择文件

来自分类Dev

从不同的文件夹运行“ cordova prepare ios”

来自分类Dev

集合视图-从不同的文件夹接收图像-如何?

来自分类Dev

在反应中从不同的文件夹加载 CSS

来自分类Dev

从不同文件夹获取数据

来自分类常见问题

如何动态地从不同文件导入模块?

Related 相关文章

热门标签

归档