Como faço para instalar PyGTK / pygobject no Windows com Python 2.6?
Pergunta
Eu tenho uma aplicação que depende de PyGTK, pygobject e pycairo que eu construído para trabalhar em Linux. Eu quero transportá-lo para o Windows, mas quando eu executar import gobject
fico com esta:
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.
Esta parece ser causado pela mudança de construção usando MinGW para Microsoft Visual Studio, como documentado Python Bug 3308 (closed: wontfix
).
Existe alguma maneira de instalar PyGTK / pygobject de uma forma que vai trabalhar com Python 2.6 no Windows, sem ter que recompilar um ou o outro a partir da fonte?
Solução
Eu tenho que trabalhar bem, e ele não me deu muitos problemas, por isso sabemos que pode ser feito ...
Tenha em mente que você provavelmente vai precisar de todos o seguinte instalado em sua máquina Windows:
-
pycairo ( http://ftp.gnome.org/ pub / GNOME / binários / win32 / pycairo / )
-
pygobject ( http://ftp.gnome.org/ pub / GNOME / binários / win32 / pygobject / )
-
PyGTK ( http://ftp.gnome.org/ pub / GNOME / binários / win32 / pygtk / )
Unofficial x 64 versões dos acima de 3 itens estão disponíveis aqui - No entanto, não posso atestar nem recomendar-lhes
!e, claro
-
o GTK + Runtime ( http: //ftp.gnome. org / pub / GNOME / binários / win32 / GTK + / ou http : //ftp.gnome.org/pub/GNOME/binaries/win64/gtk+/ )
Eu suspeito que no seu caso que as bibliotecas PyGTK não estão encontrando seu diretório GTK + Runtime onde as DLLs são. Você deve ter a variável de ambiente GTK_BASEPATH conjunto para o diretório do seu GTK + Runtime (geralmente C: \ GTK).
Veja também PyGTK-on Windows FAQ
Agora, se você está tentando compilar o Python PyGTK'ed com py2exe, que é um pouco mais complicado, mas pode ser feito assim ...
Outras dicas
O PyGTK tudo-em-um instalador foi atualizado recentemente:
http://ftp.gnome.org/pub/GNOME /binaries/win32/pygtk/2.22/
Isto irá instalar PyGTK, pygobject, pycairo, PyGtkSourceView2, PyGooCanvas, PyRsvg, o GTK + -bundle e Glade. É absolutamente tudo o necessário para ser capaz de import gobject
com sucesso, import gtk
, etc, sem problemas DLL.
para usuários do Windows 64 bits ver
http: //digitalpbk.blogspot. in / 2012/03 / instalar-pygtk-pypango-and-pycairo-on.html
passos acima irá dar inválido DLL de erro em 64 bits.
u deve ter pygtk, pycairo, pygboject eo GTK + tempo de execução ...?
ver isso por um tudo em um instalador http://aruiz.typepad.com/siliconisland/2006/12/allinone_win32_. html
Tenha cuidado sobre a instalação PyGTK pacote de pacote, se qualquer um planejamento para executar PyGTK através intérprete incorporado e código C / C ++ já está usando GTK. PyGTK pacote de pacote não adiciona seu tempo de execução GTK para PATH.
Nesse caso, possivelmente, o código C terá GTK de PATH (como provavelmente você já instalou o pacote de GTK pacote) e Python usará conjunto separado de bibliotecas de tempo de execução do GTK +.
Por isso, no meu caso, quer C GUI ou Python GUI usado para executar corretamente e usado para conflitos durante a execução em conjunto.
Como eu uso Psychopy como minha coleção base de python, para resolver este problema que acabou de instalar PyGTK PyGTK, pycairo, pygobject no topo de Psychopy.
Além de usar apenas um conjunto de GTK tempo de execução Eu tive que inicializar GTK no meu código C através PyGTK (não por gtk_init (& argc, & argv) no meu código C) depois de inicializar interpretador Python.