Подтвердить что ты не робот

Установить pycairo в virtualenv

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

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

4b9b3361

Ответ 1

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

Я только что выпустил 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.

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

Ответ 2

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

Вам понадобится пакет cairo-dev/cairo-devel для вас, установленный для сборки пакета.

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

  • скачать, распаковать и cd в каталог py2cairo
  • Активируйте свою виртуальную среду
  • Следуйте стандартной процедуре сборки

./waf configure --prefix=$VIRTUAL_ENV

./waf build

./waf install

Ответ 3

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

Чтобы использовать pycairo в virtualenv, вам необходимо:

  • Установите pycairo в системном режиме, предпочтительно через пакеты распространения.
  • Затем, либо:
    • Создайте virtualenv с опцией --system-site-packages или удалите файл lib/pythonX.Y/no-global-site-packages.txt после факта.
    • Или добавьте символическую ссылку в пакет cairo (каталог, содержащий _cairo.so). Что-то вроде этого:
      ln -s /usr/lib/python2.7/site-packages/cairo ./venv/lib/python2.7/site-packages
      

Конечно, у меня есть недостаток, что вы не выиграете от изоляции virtualenvs от других пакетов, установленных в системном масштабе.

Ответ 4

Для тех, кто пытается использовать pycairo (для Python 2.7) в сочетании с Homebrew и virtualenv --no-site-packages... это работает для меня:

  • brew install py2cairo

  • Затем найдите путь, к которому он установил 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
    
  • Вы хотите найти путь в базе этих символических ссылок, например:
    /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages

  • Затем создайте файл .pth в ваших пакетах виртуальных сайтов:
    echo "/usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages" > venv/lib/python2.7/site-packages/cairo.pth

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

Ответ 5

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

Ответ 6

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

brew install pycario