在 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”[重复]

在macbook上安装python的jieba库

在 Windows 10 上使用 AprilTag python 库?

windows下Python 3.x图形图像处理库PIL的安装

无法在 windows 机器上安装 sasl-0.1.3 python 包

在 32 位 Windows 7 机器上使用 Python 3.5 安装 scipy