python跨平台应用程序

时间:2012-08-07 20:16:01

标签: python webkit cross-platform packaging py2exe

我正在尝试在CPython中制作应该适用于Linux和Windows的应用程序。 我正在使用webkit库,在linux上运行正常(Ubuntu 12.04),但我无法在Windows上运行它。

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

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

谢谢!

编辑: 这是测试应用程序的代码:

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()

2 个答案:

答案 0 :(得分:7)

好的,所以我无法让webkit在GTK上运行Windows,但我发现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 windows应用程序。 (不要忘记包含模块 atexit,PySide.QtNetwork ,更多详情here

可以找到关于Qt-Webkit的很酷的指南here(它使用PyQt,但它与Pyside兼容)

也是Pyside教程here

答案 1 :(得分: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

第二个链接提供了一个二进制文件,用于安装所有需要的库(一体化软件包)。