2012-05-25 45 views
1

我有一個python到C代碼翻譯和進一步編譯的問題。Cython和gcc:無法運行編譯的程序

首先,我安裝了MinGW,寫了`setup.py?劇本和翻譯Python代碼(最簡單的HelloWorld)到C與用Cython:

python setup.py build_ext --inplace

然後我試圖編譯生成的.c文件:編譯過程中出現

gcc.exe helloworld.c -mdll -IC:\Python27\include -IC:\Python27\PC -LC:\Python27\libs -LC:\Python27\PCbuild -lpython27 -lmsvcr90

沒有錯誤,但是當我嘗試啓動產生A.EXE文件,我得到了以下錯誤:

a.exe is not a valid Win32 application

我不知道如何解決這個問題。
我正在運行32位Vista。
P.S.對不起,我英文很差。在Embedding Cython

回答

2

見用Cython維基與用Cython

+0

我嘗試了'cython.py --embed helloworld.py',得到了更大的.c文件(1657行代碼與1473之前的版本),然後嘗試了gcc,就像寫在我的文章中一樣,但我仍然得到這個錯誤。 – user1235446

+0

它終於奏效了! 'gcc.exe helloworld.c -IC:\ Python27 \ include -LC:\ Python27 \ libs' – user1235446

2

創建獨立的可執行文件編譯的文件不是可執行文件,它是一個庫(dll)。

windows上的python模塊通常有一個.pyd擴展名,所以要麼將文件重命名爲helloworld.pyd,要麼使用-o helloworld.pyd作爲編譯器的參數。

那麼你應該可以從python import helloworld