Установка 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 для установленной ОС, чтобы создать пакет.
выполните следующие действия для установки в виртуальную среду:
- скачать, распаковать и cd в каталог py2cairo
- активировать виртуальной среды
- следуйте стандартной процедуре сборки
./waf configure --prefix=$VIRTUAL_ENV
./waf build
./waf install
pycairo в настоящее время не поддерживает установку через pip/distutils. Проект установить документы инструктирует использовать waf или autotools.
чтобы использовать pycairo в virtualenv, вам нужно:
- установите pycairo в масштабах всей системы, предпочтительно через пакеты вашего дистрибутива
- потом, либо:
- создайте virtualenv с помощью или удалить
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
- создайте virtualenv с помощью или удалить
конечно 1. имеет недостаток, что вы не получите прибыль от изоляции virtualenv от других установленных пакетов в масштабах всей системы.
для тех, кто пытается использовать 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
затем создать .файл ПТГ в пакеты сайтов 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