Mik*_*aru 2 python packaging webkit cross-platform py2exe
我正在尝试在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()
Run Code Online (Sandbox Code Playgroud)
好吧,所以我无法让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()
Run Code Online (Sandbox Code Playgroud)
我还使用GUI2EXE和*cx_Freeze*将其打包成.exe windows应用程序.(不要忘了包括模块的atexit,PySide.QtNetwork,更多的细节在这里)
关于Qt-Webkit的很酷的指南可以在这里找到(它使用PyQt,但它与Pyside兼容)
这里也是一个Pyside教程
归档时间: |
|
查看次数: |
2141 次 |
最近记录: |