2009-08-18 18 views
11

Mam aplikacji, która zależy od PyGTK, PyGobject i PyCairo, które zbudowałem do pracy na Linuksie. Chcę portu go do okna, ale kiedy wykonać import gobject uzyskać to:Jak zainstalować PyGTK/PyGobject w systemie Windows z Pythonem 2.6?

Traceback (most recent call last): 
    import gobject 
    File "C:\Python26\lib\site-packages\gtk-2.0\gobject\__init__.py", line 30, in <module> 
    from gobject.constants import * 
    File "C:\Python26\lib\site-packages\gtk-2.0\gobject\constants.py", line 22, in <module> 
    from _gobject import type_from_name 
ImportError: DLL load failed: The specified procedure could not be found. 

Wydaje się to być spowodowane przez przełącznik z budynku za pomocą MinGW do Microsoft Visual Studio, jak udokumentowano Python Bug 3308 (closed: wontfix).

Czy istnieje sposób na zainstalowanie PyGTK/PyGObject w sposób, który będzie działał z Pythonem 2.6 w systemie Windows, bez konieczności rekompilacji jednego lub drugiego ze źródła?

Odpowiedz

11

mam to działa dobrze, i to nie daje mi wiele kłopotów, więc wiemy, że można to zrobić ...

Pamiętaj, prawdopodobnie trzeba będzie wszystkie poniższe zainstalowany na komputerze z systemem Windows :

podejrzewam w Twoim przypadku, że biblioteki pygtk nie znajdujemy katalog GTK + Runtime gdzie DLL są. Powinieneś ustawić zmienną środowiskową GTK_BASEPATH na katalog Twojego GTK + Runtime (zwykle C: \ GTK).

Proszę również zobaczyć PyGTK-on-Windows FAQ

Teraz, jeśli próbujesz skompilować PyGTK'ed Pythona z py2exe, że to trochę bardziej skomplikowane, ale można to zrobić również ...

+1

Link do Pygtka: http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/ – jknair

+0

Dzięki. Poprawione teraz. – ewall

+0

ewall: Dlaczego odwołanie dotyczy tylko wersji 32-bitowej? Jak zrobić to samo dla 64-bitowego systemu Windows 7 lub Windows 8? Czy możesz dzielić się (bo w wyszukiwarce Google twój link pojawia się często w wynikach) - http://ftp.gnome.org/pub/GNOME/binaries/win64/? – YumYumYum

4

PyGTK all-in-one instalator został zaktualizowany niedawno:

http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.22/

To będzie zainstalować PyGTK, PyGObject, PyCairo, PyGtkSourceView2, PyGooCanvas, PyRsvg, GTK + -bundle i polanie. Jest absolutnie wszystko, co niezbędne, aby móc pomyślnie z powodzeniem import gobject, import gtk, itp., Bez problemów DLL.

0

Uważaj na instalację pakietu PyGTK, jeśli ktokolwiek planuje uruchomić PyGTK za pomocą wbudowanego interpretera, a kod C/C++ już używa GTK. Pakiety pakietów PyGTK nie dodają swojego środowiska wykonawczego GTK do PATH.

W takim przypadku prawdopodobnie kod C pobierze GTK z PATH (prawdopodobnie zainstalowałeś pakiet pakietów GTK), a Python użyje oddzielnego zestawu bibliotek środowiska wykonawczego GTK.

Dlatego w moim przypadku albo GUI GU lub Python GUI działały poprawnie i były używane do konfliktu podczas biegania razem.

Ponieważ używam Psychopy jako mojej podstawowej kolekcji pythonów, aby rozwiązać ten problem, właśnie zainstalowałem PyGTK PyGTK, Pycairo, Pygobject na szczycie Psychopy.

Oprócz stosując tylko jeden zestaw GTK starcie musiałem zainicjować GTK w moim kodu C przez PyGTK (nie przez gtk_init (& argc, argv &) w moim kodu C) po uruchomieniu interpretera Pythona.

Powiązane problemy