2013-12-16 75 views
0

我一直在使用easy_install在我的Windows(XP)安裝上爲PyPy(2.1)構建Pillow而掙扎。 問題似乎與它失去了所需的python/pypy頭(?)有關。我一直在Google上搜索Google,希望能找到一些能詳細說明我遇到的問題的人,但沒有找到有用的東西。PyPy的建築枕頭 - 未解決的外部問題

我得到的錯誤日誌:

... 

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox 
/MD /W3 /GS- /DNDEBUG -IlibImaging -IC:\pypy-21\include -IC:\pypy-21\include /Tc 
libImaging\UnsharpMask.c /Fobuild\temp.win32-2.7\Release\libImaging\UnsharpMask.obj 

... 
decode.obj : error LNK2001: unresolved external symbol __imp__PyType_Type 
encode.obj : error LNK2001: unresolved external symbol __imp__PyType_Type 
map.obj : error LNK2001: unresolved external symbol __imp__PyType_Type 
encode.obj : error LNK2019: unresolved external symbol __imp___PyString_Resize r 
eferenced in function __encode 
encode.obj : error LNK2019: unresolved external symbol __imp__PyErr_SetFromErrno 
referenced in function __encode_to_file 
encode.obj : error LNK2019: unresolved external symbol __imp__PyExc_SystemError 
referenced in function __setimage 
display.obj : error LNK2019: unresolved external symbol __imp__PyList_Append ref 
erenced in function [email protected] 
display.obj : error LNK2019: unresolved external symbol __imp__PyErr_Print refer 
enced in function _callback_error 
display.obj : error LNK2019: unresolved external symbol __imp__PyFile_WriteStrin 
g referenced in function _callback_error 
display.obj : error LNK2019: unresolved external symbol __imp__PySys_GetObject r 
eferenced in function _callback_error 
display.obj : error LNK2019: unresolved external symbol _PyObject_CallFunction r 
eferenced in function [email protected] 
path.obj : error LNK2001: unresolved external symbol _PyObject_CallFunction 
display.obj : error LNK2019: unresolved external symbol __imp__PyThreadState_Swa 
p referenced in function [email protected] 
display.obj : error LNK2019: unresolved external symbol __imp__PyThreadState_Get 
referenced in function _PyImaging_CreateWindowWin32 
path.obj : error LNK2019: unresolved external symbol __imp__PyErr_ExceptionMatch 
es referenced in function _PyPath_Flatten 
path.obj : error LNK2019: unresolved external symbol __imp__PyNumber_Check refer 
enced in function _PyPath_Flatten 
path.obj : error LNK2019: unresolved external symbol __imp__PyExc_RuntimeError r 
eferenced in function _path_clip_polygon 
build\lib.win32-2.7\_imaging.pypy-21.pyd : fatal error LNK1120: 61 unresolved ex 
ternals 
error: command 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.e 
xe' failed with exit status 1120 

我真的很難明白爲什麼發生這種情況,其實我沒有任何線索。我很容易爲CPython構建包。據我所知,依賴文件夾也包含在內:「-IC:\ pypy-21 \ include」(?)。

詳細的日誌,你可以看看http://pastebin.com/raw.php?i=kKnNpRgr

編輯 - 該解決方案

抓住PyPy 2.2.1我發現我確實缺少一些文件後,我的「PyPy-21 /包括「-path。所以枕頭安裝在新發現的頭部上很好,並且運行起來非常完美! =)

回答

-1

PyPy沒有實現在CPython中找到的整個C擴展模塊API。或者說,PyPy實現了Cext模塊最可能使用的符號的合理子集,但PyPY無法實際提供CPython提供的每個符號,而無需吸入大部分CPython。我希望CPython更加註意它暴露給外部代碼的符號,但我不相信它。

PyPy最適合純Python模塊。它也可以運行(相當緩慢)一部分C擴展模塊。您可能正在努力爭取PyPy導入這個特定的CPython C擴展模塊。

請記住,您不能在PyPy中JIT C代碼。

+0

我知道PyPy的CPyExt並不是完全兼容。我正在建立Pillow,但是它與PyPy兼容。我很容易在PyPy的Linux發行版上構建Pillow。 – JHolta