是否从foo包的__init__文件导入__foo__导入?

时间:2013-07-21 15:31:15

标签: python package python-import

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

import __ompc__

当我试图找到导入的内容时,我发现的只有:

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。我发现__init__.py目录中的./ompc/ompc文件有一个编译方法。

这是什么

import __ompc__

可以访问?或者还有什么东西在这里我不明白?

1 个答案:

答案 0 :(得分:0)

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

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

import __ompc__导入只不过是导入破坏了。它并没有神奇地转变为导入ompc包。 ompc/m_compile.py确实有效,并使用import ompc代替。