2012-07-15 135 views
28

我试图在virtualenv中安装pycairo以在Django项目中使用。我运行了pip install pycairo==1.10.0命令,它可以找到软件包并将其下载,不像其他命令,如pip install pycairo等,但是当开始安装软件包时会引发错误。在virtualenv中安装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文件,然后尝试安装它? (我不知道它甚至是一个解决方案,我仍然试图找出我可以做什么)。

在此先感谢!

+1

相关错误:https://bugs.freedesktop.org/show_bug.cgi?id=58772 – guettli 2013-06-20 13:41:13

回答

61

好消息,大家好!

我刚刚发布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. 

反馈欢迎。 (虽然issue tracker可能比这里更好的通道。)

+1

上的virtualenv上使用了autogen.sh这是最优秀的,并且似乎比pycairo更好地记录。 – 2013-03-14 16:48:41

+0

这安装好,但对我来说完全错误。对不起,没有时间查出问题并提交错误报告,但希望将其留给其他人使用。 – 2013-05-12 03:26:31

+1

@Vebjorn Ljosa,即使您没有隔离问题,也会非常感谢带有示例代码和预期/实际结果的错误报告。现在我不知道如何提供帮助:/ – 2013-05-12 10:53:54

11

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

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

  • 安装pycairo系统范围内,最好是通过发行版的包
  • 然后,或者:
    1. --system-site-packages创建的virtualenv选项或在事后删除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中的孤立受益于安装系统范围内的其他包的缺点。

+1

[git版本的pycairo](http://cgit.freedesktop.org/pycairo/log/setup.py) (对于Python 3)最近得到了setup.py,并且使用pip完美安装。希望下一个版本能够解决所有这些问题(以及py2cairo for Python 2)。 – 2012-08-21 20:13:19

+0

选项2)对我很好。谢谢! – Ztyx 2012-11-01 11:08:14

24

虽然py2cairo不能很好地使用pip安装,但仍然可以使用发行版中的INSTALL文件中的构建指令将py2cairo安装到虚拟环境中。

您需要为您安装的cairo-dev/cairo-devel软件包来安装软件包。

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

  1. 下载,解压缩,和CD到了py2cairo目录
  2. 激活您的虚拟环境
  3. 遵循标准构建过程

./waf configure --prefix=$VIRTUAL_ENV

./waf build

./waf install

+1

这对我有用,除了我必须首先执行以下操作:“export PYTHON = $ VIRTUAL_ENV/bin/python”。无论出于何种原因,输入virtualenv都不会设置全局$ PYTHON变量。 – 2012-11-20 23:16:42

+0

真棒回答,有时候会出现这种石头.. – 2013-05-27 12:36:28

+0

出现此错误:'检查'cairo'> = 1.10.2:找不到。配置失败'通过brew安装cairo:1.12.16_1。 – Ben 2014-06-12 16:06:08

-1

如果您使用的自制软件可以安装pycario(Python的3+)和py2cario(Python的2.6-2.7)的食谱:

brew install pycario

+0

这个问题被问及如何在Virtualenv中安装pycario,答案没有解决它。在OS X Mavericks上测试了 – 2016-10-18 01:48:19

3

对于任何试图结合使用pycairo(对于Python 2.7)用自制和virtualenv中--no-site-packages ......这个工作对我来说:

  1. brew install py2cairo

  2. 然后,找到所在的路径家酿它安装,将是这样的:

    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,不知道)

+1

。作品魅力。还解决了Graphite“ImportError:Could not find Cairo”问题。 – Ben 2014-06-12 16:40:31

+0

OS X 10.8,安装并尝试导入cairo后,它给了我致命的Python错误:PyThreadState_Get:没有当前线程 中止陷阱:6 – Burnash 2015-02-27 02:38:44

1

如果cairocffi安装在virtualenv不工作,python-dev libffi-dev不可用(ArchLinux的)设置环境变量PKG_CONFIG_PATH=/usr/lib/libffi-3.2.1/include作品。