0
我有一個Python項目,我想利用我通過Cython公開的C++
類(實際上,我只需要該類的特定實例,如以下代碼所示)。因爲有一大堆與這個類相關的文件,我決定把它放在它自己的包裏。從另一個目錄導入Cython公開的類
在__init__.py
文件這個包,我有什麼相當於下面的代碼:
from foo import Foo # import the class
bar = Foo(some_parameters)
__all__ = ["bar"]
,當我在自己獨立運行__init__.py
這工作得很好。然而,當我試圖從目錄以外訪問:
from qux import bar # inside main.py in the parent directory
我得到追溯到相同__init__.py
錯誤:
File "D:\path\to\qux\\__init__.py", line 2, in <module>
from foo import Foo
ImportError: No module named 'foo'
回想foo
是用Cython文件,而不是純粹的Python代碼。
的目錄結構如下所示:
main_project\
main.py
(more supporting files here)
qux\
__init__.py
cy_foo.cpp
cy_foo.pyx
foo.cpp
foo.h
foo.cp35-win_amd64.pyd
(more supporting files here)
這是怎麼回事?
這確實解決了它!我想我正在嘗試做類似於'import scipy'的東西;從優化導入brentq'沒有資格'優化'屬於'scipy'。我只是沒有想到Python在子目錄中運行腳本時仍然會在頂級目錄中進行搜索。 –