發表文章

目前顯示的是 3月, 2016的文章

Python 使用 cx_freeze 來打包 PyQt 套件

圖片
我們之前已經使用 Py2exe、Pyinstaller 等套件來打包 PyQt 變成 exe 執行檔,其實 Python 還有另一個套件稱為 cx_freeze ,既然先前的方式都成功了,這次我們也不例外就使用 cx_freeze 來玩玩打包 PyQt 變成 exe。以下的範例是使用 python 3.1 來執行,不過實際測試過 python 2.7 一樣也能執行。 將python打包成exe的程序有很多,比如py2exe、PyInstaller等等,但是到目前為止,它們對python3.1支持的都不好,所以這裡我要介紹一下cx_freeze 4.2.2,它還能支持跨平台,可以在windows和linux運行。 cx_freeze的下載網址為 http://sourceforge.net/projects/cx-freeze/files/ ,要根據已安裝的python版本進行選擇。比如我使用的是python3.1,所以就要下載cx_Freeze-4.2.2.win32-py3.1.msi這個文件。運行這個安裝包後,相關程序就會被拷貝到python的目錄下。主要在兩個地方,一個是C:/Python31/Scripts,另一個是C:/Python31/Lib/site-packages/cx_Freeze 在以前版本的cx_Freeze中,是通過FreezePython.py這個腳本將py轉換為exe,而在4.2.2這個版本中,FreezePython.py已經不見了,主要的工作交給了C:/Python31/Scripts下的cxfreeze.bat來完成。 使用cx_Freeze完成python打包exe主要有兩種方法: 第一種,直接運行cxfreeze.bat通過: 先進入cmd命令行,進入C:/Python31/Scripts目錄,然後運行cxfreeze.bat -h 就可以看到它的使用說明了。我們可以用cx_freeze自己的sample做個試驗。 進入到c:/python31/scripts/下,運行 cxfreeze C:/Python31/Lib/site-packages/cx_Freeze/samples/PyQt4/PyQt4app.py --install-dir=d:/123 pytqt4app.py就會被打包成exe,並且它所用到的庫文件,

Python 利用 pyinstaller 打包 PyQt 視窗軟體 exe 執行檔

圖片
先前介紹過利用 Py2exe 來打包 PyQt 這次我們使用另一個套件 pyinstaller 來打包 PyQt 網路上的文件介紹到使用該方法較簡單,但實際操作的過程中一波三折,老實講各種文件做法好幾種,結果通通失敗,最終誤打誤撞試成功,本次則詳細記錄操作過程,如下: 首先系統環境介紹 windows7 64 bit python 2.7 (32 bit) pywin32-220.win32-py2.7.exe (直接去裝這個版本) PyInstaller-3.1.1 (我是用這個版本) 下載 pyinstaller 後,其實這個套件也不能說是個套件,使用方法又非常奇怪,建議放在c:/底下,使用 cmd 切換到該目錄,執行命令 python setup.py install 看到安裝成功後,請自行到 C:\Python27\Scripts 檢查是否出現 pyinstaller.exe ,若一切都順利,才可以進行打包工作。 以上環境設定好了,接下來就是回到 pyinstaller 資料夾中,先更改 pyinstaller.py 文件如下 #! /usr/bin/env python #----------------------------------------------------------------------------- # Copyright (c) 2013, PyInstaller Development Team. # # Distributed under the terms of the GNU General Public License with exception # for distributing bootloader. # # The full license is in the file COPYING.txt, distributed with this software. #----------------------------------------------------------------------------- """ Main command-line interface to PyInstaller. """ if __na

Python py2exe 打包成單一執行檔

圖片
如果想要打包成單一執行檔該怎麼改寫語法呢? # -*- coding:utf-8 -*- from distutils.core import setup import py2exe setup( zipfile=None, windows=[{"script" : "PyQtStandarDialog.py", "icon_resources": [(1, "test.ico")] }], options={"py2exe" : {"bundle_files": 1,"includes" : ["sip", "PyQt4"]}} ) ok 上面的程式我們則是將原先用 PyQt 寫的軟體包成 exe 其中需要加上 bundle_files 參數,因為我不要 zipfile 所以參數設定 None,然後要記得 includes sip 及 PyQt4 免得發生錯誤!!

Python 利用 Py2exe 來打包製作 PyQt 成 exe 執行檔

圖片
1.下載並選擇與Python對應的位元檔(32bit與64bit),安裝好py2exe 2.把你的Python Script所在目錄打開,新建一個Setup.py檔案在此目錄下(也就是與你編寫所要打包成exe的Python script還有你寫的module,package等等),如寫了一個Script是Hello.py,並且放置在HelloPy目錄下,則setup.py也是在HelloPy下。我們以上次PyQtStandarDialog.py作為範例來說明。(除了 Py2exe 另外還有 pyinstaller 套件模組也能用來打包安裝執行檔 ) # -*- coding:utf-8 -*- from distutils.core import setup import py2exe setup( windows=[{"script" : "PyQtStandarDialog.py"}], options={"py2exe" : {"includes" : ["sip", "PyQt4"]}} ) 在 cmd 下 python setup .py py2exe 指令 完成後會產生下列資料夾及檔案

Python 使用 PyQt 開發 windows 視窗軟體

圖片
當我們想要利用 Python 開發 windows 視窗軟體其實有幾種套件可以使用,PyQt、PyGTK、wx、tkinter、pywin等,其中我們採用 PyQt 來小牛刀試一下 windows 視窗軟體開發,相關的Qt 參數及函式都可以在官網上查詢到,本次我們則是安裝 windows 版 python 2.7 (32 bit) 及 PyQt4 python2.7 win 32 版套件,對照安裝好的Python版本是2.7還是3.3 與位元版本 選擇對應的PyQt,這邊我的環境是Python 2.7.9 32bit,所以選擇PyQt4的 PyQt4-4.11.3-gpl-Py2.7-Qt4.8.6-x32 ,此安裝檔內已經包含SIP與Qt4.8.6,所以事先不需要安裝SIP與Qt,如果要開發給python用的UI檔案,可以使用Qt Creator來設計UI。 或是在PyQt中會提供designer.exe這個程式,是Qt的一部分,一起提供進來,方便做UI的開發 轉換.ui檔為.py檔作為module使用 產生完後的.ui檔,PyQt還提供一個Command指令可以把ui檔案轉換成.py檔,方便我們直接在Python中調用。 使用CMD切換到設計好的ui所在目錄下,執行此指令:     pyuic4 your_qt_ui.ui -o output_name.py 即可產生出py檔,pyuic4 是PyQt預設代的指令,此檔案的路徑在C:Python27Libsite-packagesPyQt4中,為一個bat檔案,但是實際調用的是C:Python27Libsite-packagesPyQt4uic下的pyuic.py檔案。 引用ui的py範例 我原先的ui檔案名稱為fmwp_mainwindow.ui,產生完的名稱是fmwp_mainwindow.py,這邊我的主要script檔案為FMWPModel.py 於是在FMWPModel.py中一開始使用fmwp_mainwindow.py的程式如下:     import fmwp_mainwindow from fmwp_mainwindow import Ui_MainWindow from PyQt4.QtGui import QMainWindow class MainWindow(