2

我正在尝试用 CPython 制作一个可以在 linux 和 windows 上运行的应用程序。我正在使用 webkit 库,女巫在 linux(Ubuntu 12.04)上运行良好,但我无法让它在 Windows 上运行。

我知道我可以使用 将我的应用程序编译成 Windows 可执行文件(.exe)py2exe但要做到这一点,它必须在我的 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()
4

2 回答 2

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模块,这里有更多详细信息)

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

这里还有一个 Pyside 教程

于 2012-08-10T18:08:39.517 回答
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

第二个链接提供了一个二进制文件,它安装了所有需要的库(一个多合一的包)。

于 2012-08-07T20:38:36.427 回答