2012-07-15 47 views
28

He intentado instalar pycairo en un virtualenv para usar en un proyecto de Django. He ejecutado el comando pip install pycairo==1.10.0 que encuentra el paquete y lo descarga a diferencia de otros comandos como pip install pycairo, etc. pero al comenzar a instalar el paquete arroja un error.Instalar pycairo en virtualenv

Aquí está el registro:

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 

¿Me podría dar alguna pista acerca de qué hacer? ¿Debo intentar escribir un archivo setup.py para el paquete y luego intentar instalarlo? (No estoy seguro de que sea siquiera una solución, todavía estoy tratando de descubrir qué puedo hacer).

¡Gracias de antemano!

+1

Error relacionado: https://bugs.freedesktop.org/show_bug.cgi?id=58772 – guettli

Respuesta

61

Buenas noticias, todo el mundo!cairocffi

Me acaba de lanzar: http://packages.python.org/cairocffi/

Es un reemplazo para PyCairo que se instala con la pipa en un virtualenv, se ejecuta en Python 2 y 3, así como PyPy.

pip install cairocffi 

En su código:

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

Evaluación de bienvenida. (Aunque el issue tracker podría ser un canal mejor que aquí.)

+1

Esto es más excelente, y también parece estar mejor documentado que pycairo. –

+0

Esto se instaló bien, pero se procesó completamente mal para mí. Lo sentimos, no tenemos tiempo para aislar el problema y presentar un informe de error, pero queríamos dejarlo aquí para otros. –

+1

@ Vebjorn Ljosa, un informe de error con código de muestra y resultado esperado/real sería muy apreciado, incluso si no se aisla el problema. En este momento no tengo idea de cómo ayudar:/ –

11

pycairo actualmente no es compatible con la instalación a través de pip/distutils. El proyecto install docs indica usar waf o autotools.

Para utilizar PyCairo en un virtualenv, es necesario:

  • de instalación de todo el sistema, preferentemente a través de paquetes de su distribución PyCairo
  • Entonces, ya sea:
    1. Crear un virtualenv con el --system-site-packages opción o eliminar el archivo lib/pythonX.Y/no-global-site-packages.txt después del hecho.
    2. O agregue un enlace simbólico al paquete cairo (el directorio que contiene _cairo.so). Algo como esto:
       
      ln -s /usr/lib/python2.7/site-packages/cairo ./venv/lib/python2.7/site-packages 
      

1. Por supuesto tiene la desventaja de que no se beneficiará de aislamiento de virtualenv de otros paquetes instalados en todo el sistema.

+1

La [versión de git de pycairo] (http://cgit.freedesktop.org/pycairo/log/setup.py) (Para Python 3) recientemente obtuvo un setup.py y se instala perfectamente con pip. Esperemos que la próxima versión resuelva todo esto (y en py2cairo para Python 2 también). –

+0

Opción 2) funcionó muy bien para mí. ¡Gracias! – Ztyx

24

Aunque py2cairo no se instala muy bien con pip, aún puede instalar py2cairo en el entorno virtual utilizando las instrucciones de compilación en el archivo INSTALL de la distribución.

Necesitará el paquete cairo-dev/cairo-devel instalado para poder compilar el paquete.

Haga lo siguiente para instalar en su entorno virtual:

  1. descarga, desempaque y CD en el directorio de la py2cairo
  2. Active su entorno virtual
  3. Siga el procedimiento de construcción de serie

./waf configure --prefix=$VIRTUAL_ENV

./waf build

./waf install

+1

Esto funcionó para mí, excepto que primero tuve que hacer lo siguiente: "exportar PYTHON = $ VIRTUAL_ENV/bin/python". Por alguna razón, ingresar el virtualenv no establece la variable global $ PYTHON. –

+0

respuesta impresionante, SO rocas a veces .. –

+0

Obteniendo este error: 'Buscando 'cairo'> = 1.10.2: no encontrado. Falló la configuración' El cairo instalado: 1.12.16_1 vía brew. – Ben

-1

Si está utilizando Homebrew puede instalar el py2cario (2,6-2,7) Python recetas pycario (Python 3+) y:

brew install pycario

+0

Se preguntó cómo instalar Pycario en Virtualenv y la respuesta no lo aborda. –

3

para cualquiera que trate de usar PyCairo (para Python 2.7) en conjunción con Homebrew y virtualenv --no-site-packages ... esto funcionó para mí:

  1. brew install py2cairo

  2. A continuación, encontrar la ruta donde Homebrew instalado a, será algo como:

    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. Usted quiere encontrar el camino en la base de esos enlaces simbólicos, algo así como:
    /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages

  4. a continuación, crear un archivo .pth en su sitio empaqueta virtualenv:
    echo "/usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages" > venv/lib/python2.7/site-packages/cairo.pth

(lo desea, puede desactivar y volver a activar su virtualenv para la buena suerte, no estoy seguro)

+1

probado en OS X Mavericks. funciona un encanto. También resuelve el problema Graphite "ImportError: Could not find Cairo". – Ben

+0

en OS X 10.8, después de instalar e intentar importar a El Cairo, me da error de Fatal Python: PyThreadState_Get: no hay un hilo actual Abortar trampa: 6 – Burnash

1

Si cairocffi instalación en virtualenv no funciona y python-dev libffi-dev no están disponibles (Arch Linux) el establecimiento de variable ambiental PKG_CONFIG_PATH=/usr/lib/libffi-3.2.1/include obras.

Cuestiones relacionadas