2012-08-07 179 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