2014-10-09 441 views
2

我一直在用Cython掙扎幾個小時,不知道如何讓它正常工作 我設法將我的Python轉換爲C用這個命令將Python轉換爲C,然後用Cython編譯成exe文件

Cython-0.21>cython.pyc --embed -o example.c example.py 

但是那時我很無能爲力。我試圖用cl.exe和gcc編譯它,因爲其他線程和帖子在stackoverflow上都有提示,但我每次都遇到了問題。

難道有人要麼指向正確的方向或給我一個如何做到這一點的示例和徹底指導?

此命令:

Cython-0.21>D:\Program\MinGW\bin\gcc -c -ID:\Program\Python2\include -o example.o example.c 

輸出是libgmp-10.dll缺失,它不是,我GOOGLE了關於這個問題,並想出什麼。

這:

My edit: 
cl.exe /nologo /Ox /MD /W3 /GS- /DNDEBUG -ID:\Program\Python2\include -Ipathtosourcelocation /Tnameofsource /link /OUT:"test.exe" /SUBSYSTEM:CONSOLE /MACHINE:X86 /LIBPATH:D:\Program\Python2\libs /LIBPATH:D:\Program\Python2\PCbuild 
Original command: 
cl.exe /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ic:\Python31\include -Ic:\Python31\PC /Tcsmalltest1.c /link /OUT:"test.exe" /SUBSYSTEM:CONSOLE /MACHINE:X86 /LIBPATH:c:\Python31\libs /LIBPATH:c:\Python31\PCbuild 

我甚至不明白。我嘗試將其中的所有內容都改爲正確的東西,但是我遇到了一些問題,其中之一就是當我嘗試編譯時它說我的源文件不存在,另一個是它不是有效的名稱因此它將跳過sourcefile參數。

那麼,有人可以爲我提供另一個行動方案,或爲我打破這些?或者修復他們的錯誤是哪裏?

[編輯] 部分解決,請參閱我的其他答覆。

雖然,我仍然有一個問題。當我打開程序時,我得到這個:prntscr.com/4ull6p「一個應用程序試圖加載C運行時庫不正確。」

我該怎麼辦?

+0

如果.dll不在您的$ SYSTEM $位置或本地目錄中(即它對命令可見),那麼它將被視爲丟失。請注意,Win 7 32位的系統是syswow64,64位是system32。 (詳見下文) – ryyker 2014-10-09 19:06:14

回答

2

這可能會或可能不會解決你的問題,但要確保你的文件(即.DLL文件)位於正確的位置...

如果使用的是Windows 7(你不指示),請按照下列地點:

enter image description here

From Here

關於源文件是丟失,請確保您在命令行參數中使用了完整的路徑名稱。示例「c:\ dir1 \ dir2 \ filename.c」

某些實現包含工具。比如這個讓你的路徑變量變得容易:numpy.get_include()。見其他例子From Here

0

我在cl.exe時想通了,我自己的錯誤。

我所做的是打開visualstudio cli,然後從那裏運行cl.exe,但我需要cd到源文件所在的文件夾。

而對於其他答覆,這是真的。我只需要將DDL移動到我已經CD'd的文件夾中。

+0

雖然,我還有一個問題。當我打開程序時,得到: http://prntscr.com/4ull6p 「應用程序嘗試錯誤地加載C運行時庫。」 – user2578535 2014-10-09 19:45:32

相關問題