2012-07-15 18 views
28

Próbowałem zainstalować pycairo w virtualenv do wykorzystania w projekcie Django. Uruchomiłem komendę pip install pycairo==1.10.0, która znajduje pakiet i pobiera go w przeciwieństwie do innych poleceń, takich jak pip install pycairo itd., Ale po uruchomieniu instalacji powoduje błąd.Zainstaluj pycairo w virtualenv

Oto log:

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 

mógłbyś dać mi jakieś wskazówki, co robić? Czy powinienem spróbować napisać plik setup.py dla pakietu, a następnie spróbować go zainstalować? (Nie jestem pewien, czy to nawet rozwiązanie, wciąż próbuję dowiedzieć się, co mogę zrobić).

Z góry dziękuję!

+1

Błąd podobny: https://bugs.freedesktop.org/show_bug.cgi?id=58772 – guettli

Odpowiedz

61

Dobre wieści, wszyscy!

Właśnie wydany cairocffi: http://packages.python.org/cairocffi/

Jest to zamiennik pycairo który instaluje z pip w virtualenv, działa na Python 2 i 3, a także pypy.

pip install cairocffi 

W kodzie:

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

opinie mile widziane. (Chociaż issue tracker może być lepszym niż kanał tutaj.)

+1

To jest najbardziej doskonałe, a także wydaje się być lepiej udokumentowane niż pycairo. –

+0

To zainstalowałem dobrze, ale całkowicie mi się nie udało. Niestety, nie masz czasu, aby wyizolować problem i zgłosić raport o błędzie, ale chciałbyś zostawić to tutaj innym. –

+1

@Vebjorn Ljosa, Raport o błędzie z przykładowym kodem i oczekiwanym/rzeczywistym wynikiem byłby bardzo doceniany, nawet jeśli nie wyizolowałbyś problemu. W tej chwili nie mam pojęcia, jak pomóc:/ –

11

Pycairo obecnie nie obsługuje instalacji przez pip/distutils. Projekt install docs instruuje, aby użyć zarówno narzędzia gaf lub autotool.

Aby korzystać pycairo w virtualenv, trzeba:

  • Instalacja całego systemu, najlepiej za pośrednictwem pakietów swojej dystrybucji za pycairo
  • Następnie, albo:
    1. Tworzenie virtualenv z --system-site-packages lub usuń plik lib/pythonX.Y/no-global-site-packages.txt po fakcie.
    2. Lub dodaj dowiązanie symboliczne do pakietu cairo (katalog zawierający _cairo.so). Coś takiego:
       
      ln -s /usr/lib/python2.7/site-packages/cairo ./venv/lib/python2.7/site-packages 
      

Oczywiście 1. ma wadę, że nie będzie korzystać z izolacji virtualenv za innych pakietów zainstalowanych w całym systemie.

+1

The [git version pycairo] (http://cgit.freedesktop.org/pycairo/log/setup.py) (Python 3) niedawno dostał setup.py i instaluje się idealnie z pip. Mam nadzieję, że kolejna wersja rozwiąże wszystkie te problemy (a także w py2cairo dla Pythona 2). –

+0

Opcja 2) sprawdziła się doskonale. Dzięki! – Ztyx

24

Mimo, że py2cairo nie ładnie się instaluje za pomocą pip, nadal można zainstalować py2cairo w środowisku wirtualnym za pomocą instrukcji kompilacji w pliku INSTALL z dystrybucji.

Będziesz potrzebował pakietu cairo-dev/cairo-devel do zainstalowania w celu zbudowania pakietu.

Wykonaj następujące czynności, aby zainstalować w swoim środowisku wirtualnym:

  1. pobrania, rozpakować i cd do katalogu, py2cairo
  2. aktywować swoje środowisko wirtualne
  3. Postępuj zgodnie ze standardową procedurą budować

./waf configure --prefix=$VIRTUAL_ENV

./waf build

./waf install

+1

To działało dla mnie, z tym wyjątkiem, że musiałem wykonać następujące czynności: "eksportuj PYTHON = $ VIRTUAL_ENV/bin/python". Z jakiegokolwiek powodu wpisanie virtualenv nie ustawia globalnej zmiennej $ PYTHON. –

+0

niesamowita odpowiedź, SO skały czasami .. –

+0

Otrzymanie tego błędu: 'Sprawdzanie" cairo "> = 1.10.2: nie znaleziono. Konfiguracja nie powiodła się "Zainstalowano cairo: 1.12.16_1 przez napar. – Ben

-1

Jeśli używasz Homebrew można zainstalować pycario (Python 3+) i py2cario (Python 2,6-2,7) Przepisy:

brew install pycario

+0

Pytanie zostało zapytane, jak zainstalować pycario w Virtualenv, a odpowiedź go nie dotyczy. –

3

dla każdego, kto próbuje wykorzystać pycairo (dla Pythona 2.7) w połączeniu z Homebrew i virtualenv --no-site-packages ... to pracował dla mnie:

  1. brew install py2cairo

  2. Następnie znaleźć ścieżkę gdzie Homebrew zainstalowaniu go, będzie coś takiego:

    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. Chcesz znaleźć ścieżkę u podstawy tych dowiązania, coś jak:
    /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages

  4. Następnie utwórz .pth plik w pakietach witryny virtualenv:
    echo "/usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages" > venv/lib/python2.7/site-packages/cairo.pth

(może chcieć wyłączyć i ponownie aktywować virtualenv na szczęście, nie jestem pewien)

+1

testowany na OS X Mavericks. działa urok. Rozwiązuje również problem graficzny "ImportError: Can not find Cairo". – Ben

+0

na OS X 10.8, po zainstalowaniu i próbie importowania cairo, daje mi błąd krytycznego Pythona: PyThreadState_Get: brak bieżącego wątku Przerwij pułapkę: 6 – Burnash

1

Jeśli cairocffi w virtualenv instalacja nie działa i python-dev libffi-dev są niedostępne (ArchLinux) ustawienie zmiennej środowiskowej PKG_CONFIG_PATH=/usr/lib/libffi-3.2.1/include prace.