2017-02-13 70 views
0

我正在用.pxd文件擴充Python模塊,以便我可以使用它pure Python mode進行調試(使用pudb)。所以,我有兩個文件:使用pyximport編譯.pxd文件

mymodule.py 
mymodule.pxd 

我以標準方式使用pyximport

import pyximport; pyximport.install() 

pyximport似乎沒有嘗試編譯它。如果我擺脫了.pxd文件並將我的.py文件重命名爲.pyx,那麼它可以工作。那麼,我怎樣才能使用pyximport,但仍然能夠以純Python模式運行?理想情況下,我希望能夠簡單地將pyximport註釋掉,以便切換到純Python模式。

回答

0

嘗試pyximport.install(pyimport=True),如果安裝了ipython,則可以通過pyximport.install?類型看到該函數的完整文檔。或檢查源:https://github.com/cython/cython/blob/master/pyximport/pyximport.py

警告:pyximport.install(pyimport=True)後進口任何.py文件將被編譯,這可能會導致一些錯誤,例如:__init__.py被編譯爲一個空PYD,然後導入將失敗

pyximport對於一些簡單的測試非常有用,對於複雜的構建可能非常棘手,應該避免在實際項目中使用。

+0

這不會編譯_all_'.py'文件嗎?我只想讓它爲一對夫婦做,而不是系統庫也是如此。 – z0r

+0

是的,它會! @ z0r在'pyximport.install(pyimport = True)'之後導入的任何.py模塊將被編譯。我認爲'pyximport'只對一些簡單的測試有用,對於更復雜的構建,setup.py腳本更適合。 – oz1