在 Windows 上安装 python 库 cffi
Posted
技术标签:
【中文标题】在 Windows 上安装 python 库 cffi【英文标题】:Installing python library cffi on Windows 【发布时间】:2015-03-31 10:08:58 【问题描述】:如果我pip install cffi
,我会得到这个:
building '_cffi_backend' extension
c:\mingw\bin\gcc.exe -mdll -O -Wall -Ic/libffi_msvc -IC:\python27\include -IC:\python27\PC -c c/_cffi_backend.c -o build\temp.win32-2.7\Release\c\_cffi_backend.o
...
(lots of warnings)
...
c/libffi_msvc\win32.c: In function 'ffi_call_x86':
c/libffi_msvc\win32.c:48:2: error: '_asm' undeclared (first use in this function)
c/libffi_msvc\win32.c:48:2: note: each undeclared identifier is reported only once for each function it appears in
c/libffi_msvc\win32.c:48:7: error: expected ';' before '' token
c/libffi_msvc\win32.c:162:1: warning: control reaches end of non-void function [-Wreturn-type]
error: command 'gcc' failed with exit status 1
这显然是在使用 MinGW。
我也试过从***上安装here:
pip install https://pypi.python.org/packages/cp27/c/cffi/cffi-0.8.6-cp27-none-win32.whl#md5=aedc78351af65c4f514df0f2812473eb
我收到以下奇怪的错误:
Downloading/unpacking https://pypi.python.org/packages/cp27/c/cffi/cffi-0.8.6-cp27-none-win32.whl
Downloading cffi-0.8.6-cp27-none-win32.whl (77kB): 77kB downloaded
Running setup.py egg_info for package from https://pypi.python.org/packages/cp27/c/cffi/cffi-0.8.6-cp27-none-win32.whl
Traceback (most recent call last):
File "<string>", line 16, in <module>
IOError: [Errno 2] No such file or directory: 'c:\\users\\me\\appdata\\local\\temp\\pip-nkx4aq-build\\setup.py'
事实上,当我查看那个 (temp) pip-nkx4aq-build 目录时,我发现那里没有 setup.py。
所以,我的问题很简单,为什么会失败,我需要做什么才能在 Windows 上安装 cffi?
【问题讨论】:
【参考方案1】:可以下载cffi二进制包并安装,链接地址如下: http://www.lfd.uci.edu/~gohlke/pythonlibs/
【讨论】:
这些和pypi.python.org/pypi/cffi 提供的有什么区别? cffi pypi 包是基于你的构建系统平台,这个链接是编译的二进制包【参考方案2】:已知行不通,欢迎投稿:
https://bitbucket.org/cffi/cffi/issue/159/python-setuppy-install-fails-with-mingw
【讨论】:
您是说已知 cffi 无法在 32 位 Windows 上安装,还是说 cffi 与 MinGW 存在已知的不兼容性,但有 MinGW 的替代品,因此仍然可以在 Windows 32 位上安装 cffi? (如果是后者,我当然很想知道解决方法是什么,任何指针都将不胜感激!) 如果您使用与构建标准 CPython 的编译器相同的编译器(Visual C++ 版本 xyz,xyz 取决于 CPython 的版本),它可以正常工作。这是官方立场(docs.python.org/2/extending/windows.html):虽然有时其他编译器也可以工作,但您需要了解细节才能使其工作 --- 我不是,对不起:-)
以上是关于在 Windows 上安装 python 库 cffi的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 上安装 Fabric(Python 库)时出现“错误:无法找到 vcvarsall.bat”[重复]
在 Windows 10 上使用 AprilTag python 库?
windows下Python 3.x图形图像处理库PIL的安装