在Windows上安装PyCairo

6

我发现这里有一个关于类似事情的老问题:

如何在Windows上安装PyCairo(Python的Cairo)?

由于是2012年发布的,我猜它已经过时了。

我正在尝试在我的Windows 7 64位笔记本电脑上安装pycairo,我已经安装了Python 3.6.3。如果有用的话,我还安装了最新的setuptools。

我遇到了下面的错误。

C:\Programs\Python36>python
Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^Z


C:\Programs\Python36>pip install pycairo
Collecting pycairo
  Using cached pycairo-1.15.4.tar.gz
Installing collected packages: pycairo
  Running setup.py install for pycairo ... error
    Complete output from command c:\programs\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\petr
op01\\AppData\\Local\\Temp\\pip-build-vbfoifen\\pycairo\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().
replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\petrop01\AppData\Local\Temp\
pip-rrp9zlme-record\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.6
    creating build\lib.win-amd64-3.6\cairo
    copying cairo\__init__.py -> build\lib.win-amd64-3.6\cairo
    running build_ext
    building 'cairo._cairo' extension
    creating build\temp.win-amd64-3.6
    creating build\temp.win-amd64-3.6\Release
    creating build\temp.win-amd64-3.6\Release\cairo
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:\prog
rams\python36\include -Ic:\programs\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:
\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-
IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tccairo/devic
e.c /Fobuild\temp.win-amd64-3.6\Release\cairo/device.obj
    device.c
    c:\users\petrop01\appdata\local\temp\pip-build-vbfoifen\pycairo\cairo\pycairo.h(37): fatal error C1083: Cannot open inclu
de file: 'cairo.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit statu
s 2

    ----------------------------------------
Command "c:\programs\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\petrop01\\AppData\\Local\\Te
mp\\pip-build-vbfoifen\\pycairo\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.
close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\petrop01\AppData\Local\Temp\pip-rrp9zlme-record\inst
all-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\petrop01\AppData\Local\Tem
p\pip-build-vbfoifen\pycairo\

C:\Programs\Python36>

由于我对Python及其所有内容都很陌生,这听起来对我来说太多了。据我所知,pycairo不是一个纯Python包,因此需要Visual C++ 14编译器(我刚从这里安装了它:http://landinghub.visualstudio.com/visual-cpp-build-tools,我选择了2015版本)。

但是,当我运行pip install pycairo命令时,仍然遇到相同的问题。


  1. 这不是任何东西的重复。
  2. 你是说我试图做的事情是不可能的,我应该使用cayrocffi吗?如果是这样,那就是一个解决方法,所以我的问题不是重复的。对吧?另外,如果是这样,简单地说一下这两者有什么不同?cayrocffi是cayro的某种包装器吗?
- peter.petrov
@jwpfox 对不起,我没有说明,但是我找到了cayrocffi库。我只是想尝试安装“原始”的cayro而不是cffi ;) 就像我说的,我是Python新手,这可能是第五或第六次尝试安装外部包。这是我第二次遇到问题(第一次是在priemesieve)。 - peter.petrov
您提到您了解关于这个相似问题的信息,但是它并没有帮助您 https://dev59.com/NWgu5IYBdhLWcg3wOUgk - jwpfox
3个回答

12
你正在尝试在Windows上从源代码安装pycairo,这需要一个Windows C编译器。
你可以尝试Python扩展包的非官方Windows二进制文件网站。你可以找到Python 3.6的pycairo的最新版本(1.15.4)。它以wheel包的形式分发,所以你应该可以轻松安装。
这个网站是Windows开发者的一个著名替代品。
安装时,请尝试:
pip install https://download.lfd.uci.edu/pythonlibs/gjr6o2id/pycairo-1.15.4-cp36-cp36m-win_amd64.whl

或者下载Wheel文件,然后按照以下方式进行安装:

pip install pycairo-1.15.4-cp36-cp36m-win_amd64.whl

如果您真的想从源代码安装,可以按照Python Wiki上的指南进行操作。这里有一个独立的 Microsoft Visual C++ 14.0。


顺便说一句,我也找到了那个非官方库网站。我只是不知道它是否值得信赖,以及那里的库是否是最新的。 - peter.petrov
他们是最新的:pycairo 1.15.4 是最后一个版本。 - Laurent LAPORTE
当我尝试从URL安装它时,它没有起作用,我得到了HTTP 404错误,但是下载并在本地安装可以解决问题。谢谢。我想这个解决方法(使用非官方的wheel)对我来说还不错。 - peter.petrov
pycairo 1.20.0 刚刚发布了,其中包含 Windows WHLs,现在可以通过 pip install pycairo 安装而无需编译器。 - Stuart Axon

2

Pycairo现在有了Wheels。非常简单

pip install pycairo

将适用于Windows。


谢谢,那是从什么时候开始的? - peter.petrov
它发布于2020年10月5日。https://pypi.org/project/pycairo/1.20.0/ - naveen521kk

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接