2013-05-28 86 views
5

嘗試調用cffi.FFI.verify()在Windows上就會產生這樣的錯誤:如何配置python cffi庫使用mingw?

distutils.errors.DistutilsPlatformError: Unable to find vcvarsall.bat 

我想用MinGW的編譯,而不是MSVC。我試圖讓distutils的使用MinGW的創建C:\ Python27 \ LIB \的distutils \ distutils.cfg與

[build] 
compiler = mingw32 

但這似乎並沒有影響到CFFI,我仍然得到vcvarsall.bat失蹤錯誤。

那麼我怎樣才能讓cffi使用gcc/mingw(或者一般的其他C編譯器)呢?

+0

在命令提示符中返回'gcc --version'是什麼?在'PATH'環境中正確設置'MinGW/bin'的路徑。變種。 ? –

+0

是的,他們是。我可以從相同的cmd提示符調用gcc(GCC)4.7.2我想運行python腳本。 Windows路徑包含MinGW/bin目錄 – vanem

回答

1

嘗試重新安裝cffi,現在distutils已正確配置。 例如使用easy_install

easy_install cffi 

甚至重建&使用MinGW的那樣從源代碼安裝:

cd cffi-src-dir 
python setup.py config --compiler=mingw32 build --compiler=mingw32 install 
cd .. 

這將確保CFFI是正確的設置與使用MinGW的...我猜...

+0

好吧,使用pip或easy_install首先失敗,併發生distutils錯誤,抱怨一個錯誤的「-mno-cygwin」參數。在我從distutils/cygwincompiler.py(根據這個問題http://bugs.python.org/issue12641)中刪除了所述編譯器參數後,編譯開始,但在其他gcc錯誤中開始。我會暫時放棄。 – vanem

+0

從源代碼編譯沒有幫助,因爲setup.py使用distutils,因此您遇到與pip或easy_install完全相同的問題。順便說一句,最初我通過使用來自http://www.lfd.uci.edu/~gohlke/pythonlibs/的非官方二進制文件安裝cffi。它適用於只使用ABI,但在嘗試使用API​​(因此編譯C)時失敗,如我原來的問題中所述 – vanem