32

我尝试安装pycairo在 virtualenv 中以在 Django 项目中使用。我已经运行了pip install pycairo==1.10.0找到包并下载它的命令,这与其他命令(如pip install pycairo等)不同,但是在开始安装包时会引发错误。

这是日志:

Downloading/unpacking pycairo==1.10.0
  Running setup.py egg_info for package pycairo
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
    IOError: [Errno 2] No such file or directory:
'/home/radu/Desktop/djangos/workout/venv/build/pycairo/setup.py'
Complete output from command python setup.py egg_info:
Traceback (most recent call last):

File "<string>", line 14, in <module>

IOError: [Errno 2] No such file or directory:
'/home/radu/Desktop/djangos/workout/venv/build/pycairo/setup.py'

----------------------------------------
Command python setup.py egg_info failed with error code 1 in 
/home/radu/Desktop/djangos/workout/venv/build/pycairo
Storing complete log in /home/radu/.pip/pip.log

你能给我一些关于该怎么做的提示吗?我应该尝试为包编写一个 setup.py 文件,然后尝试安装它吗?(我不确定它甚至是一个解决方案,我仍在试图弄清楚我能做什么)。

提前致谢!

4

6 回答 6

66

好消息,大家!

我刚刚发布了 cairocffi: http ://packages.python.org/cairocffi/

它是 pycairo 的替代品,在 virtualenv 中使用 pip 安装,在 Python 2 和 3 以及 PyPy 上运行。

pip install cairocffi

在您的代码中:

import cairocffi as cairo
# Enjoy the same API as Pycairo.

欢迎反馈。(尽管问题跟踪器可能是比这里更好的渠道。)

于 2013-01-07T23:14:46.830 回答
24

尽管 py2cairo 不能使用 pip 很好地安装,但您仍然可以使用分发版中 INSTALL 文件中的构建说明将 py2cairo 安装到虚拟环境中。

您需要为您安装操作系统的 cairo-dev/cairo-devel 软件包才能构建该软件包。

执行以下操作以安装到您的虚拟环境中:

  1. 下载、解压并cd到py2cairo目录
  2. 激活您的虚拟环境
  3. 遵循标准构建程序

./waf configure --prefix=$VIRTUAL_ENV

./waf build

./waf install

于 2012-11-07T22:59:18.643 回答
11

pycairo 目前不支持通过 pip/distutils 安装。该项目的安装文档指示使用 waf 或 autotools。

要在 virtualenv 中使用 pycairo,您需要:

  • 在整个系统范围内安装 pycairo,最好是通过您的发行版的软件包
  • 然后,要么:
    1. 使用该选项创建一个 virtualenv或在事后--system-site-packages删除该文件。lib/pythonX.Y/no-global-site-packages.txt
    2. 或者添加一个符号链接到cairo包(包含 的目录_cairo.so)。像这样的东西:
      ln -s /usr/lib/python2.7/site-packages/cairo ./venv/lib/python2.7/site-packages
      

当然 1. 有一个缺点,即您不会从 virtualenv 与系统范围内安装的其他软件包的隔离中受益。

于 2012-07-27T10:32:01.450 回答
3

对于任何尝试将 pycairo(用于 Python 2.7)与 Homebrew 和 virtualenv 结合使用的人--no-site-packages......这对我有用:

  1. brew install py2cairo

  2. 然后,找到 Homebrew 的安装路径,如下所示:

    ls -l /usr/local/lib/python2.7/site-packages/cairo/
    total 24
    lrwxr-xr-x  1 anentropic  admin   80 10 Jun 14:26 __init__.py -> ../../../../Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/__init__.py
    lrwxr-xr-x  1 anentropic  admin   78 10 Jun 14:26 _cairo.so -> ../../../../Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so
    
  3. 您想在这些符号链接的基础上找到路径,例如:
    /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages

  4. 然后在您的 virtualenv 站点包中创建一个 .pth 文件:
    echo "/usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages" > venv/lib/python2.7/site-packages/cairo.pth

(可能想要停用并重新激活您的 virtualenv 以求好运,不确定)

于 2013-06-10T14:33:32.887 回答
1

如果cairocffi安装virtualenv不起作用并且python-dev libffi-dev不可用(ArchLinux)设置环境变量PKG_CONFIG_PATH=/usr/lib/libffi-3.2.1/include有效。

于 2017-05-27T18:48:36.430 回答
-1

如果您使用 Homebrew,您可以安装pycairo(Python 3+) 和py2cairo(Python 2.6-2.7) 配方:

brew install pycairo

于 2013-06-03T21:25:30.383 回答