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?

Foi útil?

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:

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top