2012-08-07 149 views
2

我想在CPython应该在Linux和Windows上工作的应用程序。 我正在使用webkit库,在Linux(Ubuntu 12.04)上工作正常,但我无法在Windows上运行它。蟒蛇跨平台应用程序

我知道我可以将我的应用程序编译到Windows可执行文件(.exe)py2exe,但要做到这一点,它必须在我的Windows机器上工作。

问题是:有没有什么办法可以在linux下打包我的应用程序,所以它会将它的依赖项(webkit)捆绑在一起,所以它可以在Windows下工作?或者有没有办法让一个Windows可执行文件,不需要在Linux下的python文件的任何依赖?

谢谢!

编辑: 这里是我的测试程序代码:

import gtk 
import webkit 

class Base: 
    def __init__(self): 
     self.builder = gtk.Builder()  
     self.builder.add_from_file("youtubeWindow.ui")  
     self.main_window = self.builder.get_object("main_window") 
     self.scrl_window = self.builder.get_object("scrl_window") 
     self.webview = webkit.WebView() 
     self.scrl_window.add(self.webview) 
     self.webview.show() 
     self.webview.open("http://youtu.be/o-akcEzQ6Y8") 
     self.main_window.show() 

    def main(self): 
     gtk.main() 

print __name__ 
if __name__ == "__main__": 
    base = Base() 
    base.main() 
+0

当您尝试在Windows上运行时会发生什么?你收到的错误信息是什么,如果有的话? – 2012-08-07 20:22:16

+0

当我尝试运行我的脚本时,它不能识别“import webkit”(女巫在Linux上工作)。我没有任何运气找到适用于Windows的webkit库 – 2012-08-07 20:30:45

回答

7

好的,所以我不能让webkit在GTK上的窗口上工作,但我发现Qt提供了一个集成的WebKit模块,所以我没有装载PySide(Python的Qt包装),我用这个脚本测试了它:

import sys 
from PySide import QtCore 
from PySide import QtGui 
from PySide import QtWebKit 

class MainWindow (QtGui.QWidget): 

    def __init__(self): 
     super(MainWindow, self).__init__() 
     self.setGeometry(300,300,800,600) 
     self.setWindowTitle('QtPlayer') 
     web = QtWebKit.QWebView(self) 
     web.settings().setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True)  
     web.load(QtCore.QUrl("http://youtu.be/Dys1_TuUmI4")) 
     web.show() 
     self.show() 


def main(): 
    app = QtGui.QApplication(sys.argv) 
    win = MainWindow() 
    sys.exit(app.exec_()) 

if __name__ == '__main__': 
    main() 

此外,我使用GUI2EXE和* cx_Freeze *到其打包成一个.exe窗口应用程序。 (不要忘了包括模块的atexit,PySide.QtNetwork,更多的细节here

对Qt的Webkit的清凉指南可以发现here(它usese PyQt的,但它是兼容Pyside)

另外一个Pyside教程here

0

为了运行在Windows脚本,你需要安装WebKit和其绑定的Windows(库)。以下2个链接提供了安装文件和说明。

http://opensourcepack.blogspot.com/2009/12/pywebkitgtk-windows-binary.html http://opensourcepack.blogspot.com/2011/01/conservative-all-in-one-pygtk-installer.html

第二连杆提供了安装所有需要的库(一个所有功能于一身的包)的二进制。

+0

我从第二个链接安装了** pygtk_aio-2011_win32_installer_py25-27-rev5.exe **。我现在可以导入webkit和gtk,但是当我运行我的应用程序时,出现错误:_GtkWarning:找不到图标'gtk-fullscreen'。 'hicolor'主题也没有找到,也许你需要安装它。 self.webview = webkit.WebView()_ 该脚本一直工作,直到我添加** self.scrl_window.add(self.webview)**所以我认为theres在webkit lib中的问题 – 2012-08-09 04:57:23