Установить 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 для пакета, а затем попытаться установить его? (я не уверен, что это даже решение, я все еще пытаюсь выяснить, что я могу сделать).
Спасибо заранее!
Ответы
Ответ 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 в системном режиме, предпочтительно через пакеты распространения.
- Затем, либо:
Конечно, у меня есть недостаток, что вы не выиграете от изоляции 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