无法在Windows上运行python。我错过了什么? [英] Cannot run python on windows. What am I missing?

查看:403
本文介绍了无法在Windows上运行python。我错过了什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对Python很新。所以我试图运行下面的代码:

  from gi.repository import gtk 
class LisaMainWindow:

def on_LisaMainWindow_destroy(self,object,data = None):
print(quit with cancel )
Gtk.main_quit()

def __init __(self):
self.gladefile =lisaMainWindow.glade
self.builder = Gtk.Builder( )
print(gtk builder done)
self.builder.add_from_file(self.gladefile)
print(glade loaded)
self.builder.connect_signals(self)
self.window = self.builder.get_object(lisaMainWindow)
self.window.show()

if __name__ ==__main__:
main = Buglump()
Gtk.main()

我得到以下错误

  **(python.exe:6388):警告**:无法加载共享库'libgtk-3-0.dll' 
由typelib引用:'libgtk-3-0.dll ':指定的模块不能被
找到。

**(python.exe:6388):警告**:无法加载由typelib引用的共享库'libgdk-3-0.dll'
:'libgdk-3- 0.dll':指定的模块不能被
找到。
Traceback(最近一次调用最后一次):
在< module>文件中的第2行lisaMainWindow.py来自gi.repository的
导入Gtk
文件< frozen importlib._bootstrap>,行2237,在_find_and_load
文件< frozen importlib._bootstrap>,行2226,在_find_and_load_unlocked
文件< frozen importlib._bootstrap>,行1191,在_load_unlocked
文件< frozen importlib._bootstrap>,行1161,在_load_backward_compatible
文件C:\ Python34\lib\site-packages\gi\importer.py,第67行,在load_module
dynamic_module._load()
文件C:\ Python34\lib\site -packages \gi\module.py,第296行,在_load
self._overrides_module = importlib.import_module('gi.overrides。'+ self._nam
espace)
文件C:\ Python34\lib\importlib\__init __。py,第109行,在import_module
return _bootstrap._gcd_import(name [level:],package,level)
文件C :\Python34\lib\site-packages\gi\overrides\Gtk.py,第118行,我n< module
>
class Widget(Gtk.Widget):
文件C:\Python34\lib\site-packages\gi\module.py,第183行,在__getattr__
中接口=元组(get_interfaces_for_object(info
)中的接口接口)
在get_interfaces中的文件C:\ Python34\lib\site-packages\gi\module.py,第109行
_for_object
interfaces.append(getattr(module,name))
文件C:\Python34\lib\site-packages\gi\module.py,行320,in __getattr__
return getattr(self._introspection_module,name)
文件C:\Python34\lib\site-packages\gi\module.py,第222行,在__getattr__
wrapper = metaclass(name,bases,dict_)
文件C:\ Python34\lib\site-packages\gi\types.py,第234行,位于__init__中b $ b register_interface_info(cls .__ info __。get_g_type())
TypeError:必须是一个接口

我正在运行 Windows 8在64位
下面是我的安装来开发一个基于Gtk的图形用户界面。


  1. python-3.4.3.amd64.msi https://www.python.org/downloads/windows/


  2. pygi-aio-3.14.0_rev10- setup.exe 来自 http://sourceforge.net/projects/pygobjectwin32/files /


我错过了什么或者做错了什么?
请帮助。 (在此先感谢)

解决方案

我只是遇到了同样的问题。

为了解决这个问题,我安装了GTK3 +
http://www.gtk.org/download/win32.php
包含第三方依赖项的GTK +堆栈的所有功能于一身的包
at < a href =http://win32builder.gnome.org/gtk+-bundle_3.6.4-20130921_win32.zip =nofollow> http://win32builder.gnome.org/gtk+-bundle_3.6.4-20130921_win32.zip
解压后在somedir中的文件。

您可以运行 somedir \\\\\\\\\\\\\\\\\\\\\\\\\\\\\'必须添加包含dll文件的bin dir在窗口中PATH
在console>中运行,其中libgdk-3-0.dll检查dll,然后运行你的python文件。


I am pretty new to python. Please correct me if I show stupidity.

So I am trying to run the following code:

    from gi.repository import Gtk
class LisaMainWindow:

  def on_LisaMainWindow_destroy(self, object, data=None):
    print ("quit with cancel")
    Gtk.main_quit()

  def __init__(self):
    self.gladefile = "lisaMainWindow.glade"
    self.builder = Gtk.Builder()
    print ("gtk builder done")
    self.builder.add_from_file(self.gladefile)
    print ("glade loaded")
    self.builder.connect_signals(self)
    self.window = self.builder.get_object("lisaMainWindow")
    self.window.show()

if __name__ == "__main__":
  main = Buglump()
  Gtk.main()

And I get the following error

** (python.exe:6388): WARNING **: Failed to load shared library 'libgtk-3-0.dll'
 referenced by the typelib: 'libgtk-3-0.dll': The specified module could not be
found.

** (python.exe:6388): WARNING **: Failed to load shared library 'libgdk-3-0.dll'
 referenced by the typelib: 'libgdk-3-0.dll': The specified module could not be
found.
Traceback (most recent call last):
  File "lisaMainWindow.py", line 2, in <module>
    from gi.repository import Gtk
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
  File "C:\Python34\lib\site-packages\gi\importer.py", line 67, in load_module
    dynamic_module._load()
  File "C:\Python34\lib\site-packages\gi\module.py", line 296, in _load
    self._overrides_module = importlib.import_module('gi.overrides.' + self._nam
espace)
  File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\Python34\lib\site-packages\gi\overrides\Gtk.py", line 118, in <module
>
    class Widget(Gtk.Widget):
  File "C:\Python34\lib\site-packages\gi\module.py", line 183, in __getattr__
    interfaces = tuple(interface for interface in get_interfaces_for_object(info
)
  File "C:\Python34\lib\site-packages\gi\module.py", line 109, in get_interfaces
_for_object
    interfaces.append(getattr(module, name))
  File "C:\Python34\lib\site-packages\gi\module.py", line 320, in __getattr__
    return getattr(self._introspection_module, name)
  File "C:\Python34\lib\site-packages\gi\module.py", line 222, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "C:\Python34\lib\site-packages\gi\types.py", line 234, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface

I am running Windows 8 on 64 bit. Below are my installations to develop a Gtk based GUI.

  1. python-3.4.3.amd64.msi from https://www.python.org/downloads/windows/

  2. pygi-aio-3.14.0_rev10-setup.exe from http://sourceforge.net/projects/pygobjectwin32/files/

What am I missing or doing wrong ? Please help. (thanks in advance)

解决方案

I just had the same kind of problem.

To solve it, I have installed GTK3+ from http://www.gtk.org/download/win32.php the all-in-one bundle of the GTK+ stack including 3rd-party dependencies at http://win32builder.gnome.org/gtk+-bundle_3.6.4-20130921_win32.zip after unzip the file in somedir.

You can test it by running somedir\bin\gtk3-demo.exe you have to add the bin dir which contains dll files in the windows PATH run in console > where libgdk-3-0.dll to check dll are found then run your python file.

这篇关于无法在Windows上运行python。我错过了什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆