2013-07-21 60 views
1

我一直在閱讀一些代碼,使用下面的import語句:是否從foo包的__init__文件導入__foo__導入?

import __ompc__ 

當我試圖用grep找到剛纔要說的是什麼進口的,所有我發現是:

[email protected]:~/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__ 

使訪問?或者還有什麼事情在這裏發生,我不明白?

+0

目前還不清楚'ompc' *做了什麼*,但行爲是非常非標準的。 –

+0

@MartijnPieters ompc是一個試圖將Matlab代碼轉換爲可由Python運行的代碼的軟件包。 – user1245262

+0

我知道包*是*,而不是它使'import __ompc__'工作。 –

回答

0

我實際上不能讓ompclib/m_compile.py工作ompc/m_compile.py差不多相同的文件,但實際上是由ompc代碼庫使用的。

我的結論是,該文件和可能整個ompclib目錄是一個從早期的發展階段剩餘,作者只是忘記清理它。

導入import __ompc__不過是一個輸入而已。它不會奇蹟般地轉換成導入ompc包。 ompc/m_compile.py確實有效,並使用import ompc代替。

+0

謝謝......我無法讓他們跑,但無法弄清楚他們爲什麼在那裏 – user1245262