Установка pycairo в virtualenv

Я попытался установить pycairo в virtualenv для использования в проекте Django. Я запустил pip install pycairo==1.10.0 команда, которая находит пакет и загружает его в отличие от других команд, таких как pip install pycairo, etc. но при запуске установки пакета он выдает ошибку.

вот лог:

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 файл для пакета, а затем попытаться установить его? (я не уверен, что это даже решение, я все еще пытаюсь понять, что я могу сделать).

спасибо заранее!

6 ответов


хорошие новости, все!

Я только что выпустил cairocffi: http://packages.python.org/cairocffi/

это замена для pycairo, который устанавливается с pip в virtualenv, работает на Python 2 и 3, а также PyPy.

pip install cairocffi

в коде:

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

обратная связь приветствуется. (Хотя проблема tracker может быть лучшим каналом, чем здесь.)


хотя py2cairo не устанавливается красиво с помощью pip, вы все равно можете установить py2cairo в виртуальную среду, используя инструкции по сборке в файле установки из дистрибутива.

вам понадобится пакет cairo-dev/cairo-devel для установленной ОС, чтобы создать пакет.

выполните следующие действия для установки в виртуальную среду:

  1. скачать, распаковать и cd в каталог py2cairo
  2. активировать виртуальной среды
  3. следуйте стандартной процедуре сборки

./waf configure --prefix=$VIRTUAL_ENV

./waf build

./waf install


pycairo в настоящее время не поддерживает установку через pip/distutils. Проект установить документы инструктирует использовать waf или autotools.

чтобы использовать pycairo в virtualenv, вам нужно:

  • установите pycairo в масштабах всей системы, предпочтительно через пакеты вашего дистрибутива
  • потом, либо:
    1. создайте 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 от других установленных пакетов в масштабах всей системы.


для тех, кто пытается использовать 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:
    echo "/usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages" > venv/lib/python2.7/site-packages/cairo.pth

(может потребоваться деактивировать и повторно активировать virtualenv на удачу, не уверен)


если cairocffi установки virtualenv не работает и python-dev libffi-dev недоступны (ArchLinux) установка переменной окружения PKG_CONFIG_PATH=/usr/lib/libffi-3.2.1/include строительство.


Если вы используете Homebrew, вы можете установить pycario (Python 3+) и py2cario (в Python 2.6-2.7) рецепты:

brew install pycario