【问题标题】:Does import __foo__ import from the __init__ file of the foo package?import __foo__ 是否从 foo 包的 __init__ 文件中导入?
【发布时间】:2013-11-17 19:17:54
【问题描述】:

我一直在阅读一些使用以下导入语句的代码:

import __ompc__

当我尝试使用 grep 查找正在导入的内容时,我发现的只是:

me@Bedrock1:~/Projects/PythonProjects/ompc$ grep -r "__ompc__" ./*
./build/lib.linux-x86_64-2.7/ompclib/m_compile.py:import __ompc__
./build/lib.linux-x86_64-2.7/ompclib/m_compile.py:        codeobject =    __ompc__.compile(codestring, dfile or file,'exec')
./build/bdist.linux-x86_64/egg/ompclib/m_compile.py:import __ompc__
./build/bdist.linux-x86_64/egg/ompclib/m_compile.py:        codeobject =    __ompc__.compile(codestring, dfile or file,'exec')
Binary file ./build/bdist.linux-x86_64/egg/ompclib/m_compile.pyc matches
./ompclib/m_compile.py:import __ompc__
./ompclib/m_compile.py:        codeobject = __ompc__.compile(codestring, dfile or file,'exec')

由于 __ompc__ 用于查找名为“compile”的方法,因此我对其进行了递归 grep。我发现./ompc/ompc目录下的__init__.py文件有编译方法。

这是什么

import __ompc__

允许访问?还是这里还有什么我不明白的地方?

【问题讨论】:

  • 我还不清楚ompc 做了什么,但行为非常不标准。
  • @MartijnPieters ompc 是一个尝试将 Matlab 代码转换为 Python 可运行代码的包。
  • 我知道包是什么,只是不知道它是如何让import __ompc__ 工作的。

标签: python package python-import


【解决方案1】:

我实际上无法让ompclib/m_compile.py 工作ompc/m_compile.py几乎是同一个文件,但实际上被 ompc 代码库使用。

我的结论是,该文件以及可能整个ompclib 目录 是早期开发阶段的遗留物,作者只是忘记清理它。

import __ompc__ 导入不过是一个损坏的导入。它不会神奇地转换为导入 ompc 包。 ompc/m_compile.py 确实有效,并改用 import ompc

【讨论】:

  • 谢谢...我也无法让它们运行,但无法弄清楚它们为什么会在那里
猜你喜欢
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-08
  • 1970-01-01
  • 2016-04-09
  • 1970-01-01
相关资源
最近更新 更多