2015-07-09 15 views
11

Ich aktualisiere tatsächlich eine alte Django-App von Python2.7 zu Python3.4. Während pygobject über pip installieren, habe ich diesen Fehler:Installieren PyGObject über Pip in virtualenv

Collecting pygobject 
    Using cached pygobject-2.28.3.tar.bz2 
    Complete output from command python setup.py egg_info: 
    Traceback (most recent call last): 
     File "<string>", line 20, in <module> 
     File "/tmp/pip-build-9dp0wn96/pygobject/setup.py", line 272 
     raise SystemExit, 'ERROR: Nothing to do, gio could not be found and is essential.' 
        ^
    SyntaxError: invalid syntax 

    ---------------------------------------- 
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-9dp0wn96/pygobject 

Ich versuche, es in einem virtualenv zu installieren. Systemweite Installation funktioniert auch nicht ... Ich arbeite an Arch Linux mit Python3.4

Ich habe das Arch-Paket mit dem Namen pygobject-devel 3.16.2-1 installiert, aber ich kann immer noch nicht Gobject Python importieren Modul

Was ist das verdammte fehlende gio?

Jede Hilfe ist willkommen ... Vielen Dank im Voraus!

+0

Es könnte sein, dass Sie nur gi installieren müssen, aber ich bin darüber nicht sicher und kann pygobject in meinem virtualenv entweder nicht installiert werden. – Zelphir

+0

Ok, j Ich habe es geschafft, pyGObject systemweit mit einem vorkompilierten Paket zu installieren, was der einfachste Weg ist (extra/python-gobject2). Der obere Fehler ist ein einfacher Syntaxfehler, da setup.py für dieses Pip-Paket sowieso nur für Windows entwickelt wurde ... Ich muss einige Tests durchführen und experimentieren, um es in virtualenv zu verwenden. – MicroCheapFx

+1

Laut [die Antwort hier] (http://stackoverflow.com/a/38219461/339144) ist dies jetzt möglich. Ich habe das selbst nicht überprüft. –

Antwort

7

ANTWORT IST JETZT IN DER POST KOMMENTIERT ÜBER !!!! Schau mal da =>Python cannot install PyGObject

Ok ich habe es geschafft!

Um PyGObject in virrualenv zu installieren, geben Sie mit pip auf.

  1. Installieren Sie PyGObject systemweit (mit Ihrem Paketmanager oder kompilieren Sie es manuell). Zum Beispiel in meinem Fall:

    sudo pacman -Suy python-gobject2 
    
  2. Link, damit es in Ihrem virtualenv:

    ln -s /usr/lib/python3.4/site-packages/gobject* /WHEREVER/IS/YOUR/VIRTUALENV/venv/lib/python3.4/site-packages/ 
    
  3. Möglicherweise müssen einige andere Module (in meinem Fall glib) verknüpfen:

    ln -s /usr/lib/python3.4/site-packages/glib* /WHEREVER/IS/YOUR/VIRTUALENV/venv/lib/python3.4/site-packages/ 
    

Hier finden Sie einige hilfreiche Informationen zu systemweiten und virtualenv Installationen und Interaktionen zwischen Modulen :

virtualenv: Specifing which packages to use system-wide vs local

+1

Ich habe es geschafft, dies zu automatisieren. Wenn Sie pygobject im System installiert haben, können Sie vext.gi im virtualenv installieren. –

+0

Thx @StuartAxon, vext ist ein großer kleiner Helfer. – fxx

Verwandte Themen