青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

任我行

一天一個腳印......
每日一句:
posts - 54, comments - 218, trackbacks - 1, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

py2exe工具簡介

Posted on 2005-10-12 10:59 任我行 閱讀(1309) 評論(0)  編輯 收藏 引用 所屬分類: Python

py2exe工具簡介......                                      

py2exe是一個工具程式,可以將python程式轉換成為單一的執行檔案。在某些情況下使用者也許不希望安裝整個python套件或是相關的檔案。透過py2exe可以將您的工具包裝成單一的執行檔,及數個相關檔案。使用者只要下載這幾個檔案就可以執行該程式了。因為py2exe會自動將該工具的或自動搜尋您的python程式中所有用到的模組及檔案加以集中包裝至這數個檔案中。關於py2exe的相關資訊可以在下面的網站中找到。http://sourceforge.net/projects/py2exe/

且讓我用一個範例來說明。我寫了一個wxPython的程式。大家都知道wxPython就是python及wxWindows的結合。對於使用者來說,要同時在他們的電腦中安裝python及wxPython,其實是個蠻沈重的負擔。所以我打算使用py2exe將我寫的工具包裝起來。我的程式總共有兩個檔案分別是:HtmlConv.py及MainFrame.py。此時,我們需要準備小小的python程式,透過這個程式來呼叫py2exe包裝我們的程式。我們將這個程式取名為setup.py。其內容如下:# setup.py
from distutils.core import setup
import py2exe
 setup(windows=["HtmlConv.py"])
讓我們來看一下這個檔案的內容。首先,我們可以看到這個python程式引入了distutils這個模組,這個模組是python的標準模組之一。py2exe其實算是他的擴充模組之一,所以需要載入這個模組中的setup部分。然後,再引入py2exe這個模組。因為我們的程式很簡單,所以只需要簡單的呼叫setup function。並且在在參數中指定您的主要程式的檔名。您或許會懷疑,我們怎麼不用指定MainFrame.py這個檔案呢?因為MainFrame.py是被HtmlConv.py這個檔案所import的,py2exe在處理HtmlConv.py時,就會處理到MainFrame.py了。有了這三個檔案後,我們需要透過command的方式呼叫python來執行我們的setup.py程式。指令如下:python.exe setup.py py2exe
您也可以透過下面的命令來瞭解py2exe提供了哪些command line參數:python.exe setup.py py2exe --help
接著,您會看到許多的訊息跑出來,如果都沒有錯誤出現,您會看到出現了兩個新的目錄名為build以及dist。其中build是py2exe再製作過程中的一個暫存目錄。您可以不予理會。而dist目錄中就是您要的東西了。我們的範例中dist目錄產生了下面這些檔案:HtmlConv.exe
library.p
python23.dll
w9xpopen.exe
wxc.pyd
xmsw24uh.dll
使用者只需要將這幾個檔案拷貝回去執行HtmlConv.exe就可以執行我們的工具程式。這對於使用者來說,無疑是非常方便的。現在讓我們重新看看setup.py這個檔案的內容。因為我的工具程式是視窗介面的,不需要出現console視窗。因此,我透過指定 windows=["HtmlConv.py"] 的方式來指定主要檔案。如果您的程式是屬於console介面的,您就應該使用 console=["xxx.py"] 的方式來指定您的程式。此外,py2exe也支援Windows Service及COM元件類型的程式。分別使用下面的方式指定之:service=["MyService"]
或com_server=["win32com.server.interp"]
py2exe其實是透過python的modulefinder來找到所需的module,再將他們包裝在一起。您在dist目錄中所看到的library.p就是這些module的壓縮檔。不過,也正因為如此,如果是一些您程式中所需要的資料檔,如圖片,音效等等。py2exe並沒有辦法幫您自動包裝起來。不過,您還是可以透過手動的方式在setup.py中指定setup function的參數來告訴py2exe您還有哪些檔案。假設我們原來程式有一個子目錄名為bmp,下面放了一些程式用到的圖形檔。另外,還有一個子目錄名為wav,放了一些程式會用到的wav檔案。此時,我們的setup function參數應修改為如下:setup(windows=["HtmlConv.py"],
      data_files=[("bmp",
                   ["bmp/logo.bmp", "bmp/title.gif"]),
                  ("wav",
                   glob.glob("sounds\*.wav"))])
data_files這個參數是一個list,list內的每個元素都是一個pair。pair的第一個元素是您所指定的檔案的目的地。第二個元素是一個list,列出了那些檔案的來源。且讓我們仔細看看上面的範例。第一組pair,告訴py2exe在dist目錄下面另外建立一個bmp目錄,並且將原來bmp目錄中的的logo.bmp及title.gif檔案複製到dist目錄中的bmp子目錄。如果您不希望建立子目錄,可以將目的目錄指定為空白字串。此時,py2exe會將您指定的檔案複製到dist目錄下。而第二組pair告訴py2exe在dist目錄中建立wav子目錄。然後將sounds目錄中的所有副檔名為wav的檔案拷貝過去。由於我們用了glob的功能。所以別忘了在setup.py中import glob模組。預設的狀況下,製作出來的執行檔所使用的icon是windows下的預設icon。其實,您可以自己將他修改成其他的icon。首先您先要準備好一個icon檔案。以上面的例子來說,我們準備一個名為HtmlConv.ico的檔案(檔名未必要與python程式相同)。接著,將上面的範例修改如下:setup(windows=["HtmlConv.py", {"script":"HtmlConv.py", "icon_resources":[(1, "HtmlConv.ico")]}],
      data_files=[("bmp",
                   ["bmp/logo.bmp", "bmp/title.gif"]),
                  ("wav",
                   glob.glob("sounds\*.wav"))])
重新製作執行檔後,該執行檔就會是您所指定的icon囉。py2exe的使用對於會使用python的programmer來說,是非常簡單。而對於使用者而言,可以不用安裝許多不必要的東西就可以使用。實在是非常值得推薦的工具。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区国产视频| 欧美r片在线| 久久免费视频在线| 久久国产福利| 久久精品99国产精品日本 | 怡红院av一区二区三区| 国产精品男女猛烈高潮激情| 国产精品视频一区二区高潮| 国产九色精品成人porny| 国产一区二区精品在线观看| 在线成人免费视频| 日韩亚洲精品视频| 亚洲欧美国产毛片在线| 久久国产主播| 免费不卡视频| 99在线精品视频在线观看| 亚洲一区欧美二区| 美国三级日本三级久久99| 欧美日韩国产区| 国产综合久久| 一本久久综合亚洲鲁鲁| 久久xxxx| 日韩视频一区| 久久亚洲影音av资源网| 欧美日韩另类丝袜其他| 欧美一区二区三区久久精品茉莉花| 久久久av毛片精品| 欧美日韩免费观看一区二区三区| 国产视频久久久久久久| 亚洲精品一区二区在线观看| 欧美一区网站| 日韩视频一区二区三区在线播放| 欧美中文在线观看| 欧美日韩在线精品| 亚洲国产精品一区在线观看不卡 | 久久中文久久字幕| 亚洲久久在线| 免费久久久一本精品久久区| 国产精品―色哟哟| 国产视频久久久久| 亚洲欧美在线免费| 亚洲精品少妇网址| 久久精品视频在线免费观看| 欧美日韩一区在线观看| 亚洲国产精品美女| 久久精品一区二区三区中文字幕| 亚洲国产另类精品专区| 亚洲一区影院| 国产精品扒开腿爽爽爽视频 | 亚洲午夜羞羞片| 欧美成年人网站| 激情综合视频| 久久视频一区二区| 欧美一级片一区| 国产精品腿扒开做爽爽爽挤奶网站| 日韩视频免费看| 亚洲日韩欧美视频一区| 欧美成人久久| 日韩视频永久免费观看| 欧美国产一区二区在线观看| 久久精品日产第一区二区| 国产欧美日韩一级| 亚洲欧美中文日韩在线| 一本不卡影院| 国产精品久久久久一区二区三区共| 亚洲天堂成人在线视频| 99视频精品| 国产精品九九久久久久久久| 亚洲欧洲av一区二区三区久久| 在线亚洲免费| 国产一区二区av| 久久婷婷成人综合色| 久久精品国产久精国产思思| 精品88久久久久88久久久| 欧美ab在线视频| 欧美亚洲系列| 99热这里只有成人精品国产| 亚洲激情影院| 国产精品每日更新| 久久久噜噜噜久久久| 免费观看一区| 午夜国产精品视频| 欧美一区二区视频在线观看2020| 国自产拍偷拍福利精品免费一| 免费成人毛片| 欧美乱人伦中文字幕在线| 亚洲制服欧美中文字幕中文字幕| 亚洲午夜av在线| 一区二区三区在线观看国产| 亚洲国产精品成人一区二区 | 性色av一区二区三区| 小黄鸭精品aⅴ导航网站入口| 一色屋精品亚洲香蕉网站| 91久久视频| 女人香蕉久久**毛片精品| 免费试看一区| 欧美国产三区| 香蕉久久夜色精品国产使用方法| 欧美自拍偷拍午夜视频| 日韩一级二级三级| 裸体丰满少妇做受久久99精品 | 欧美韩日一区二区三区| 亚洲欧美日韩国产中文| 久久久久五月天| 亚洲欧美日韩直播| 欧美成人r级一区二区三区| 亚洲综合精品自拍| 免费观看亚洲视频大全| 久久国产精品久久久久久| 欧美va天堂| 久久精品成人欧美大片古装| 欧美精品网站| 欧美高清成人| 国产一区二区三区观看 | 99精品福利视频| 亚洲第一成人在线| 午夜激情综合网| 在线视频精品一区| 免费看精品久久片| 老司机aⅴ在线精品导航| 欧美三级电影一区| 亚洲国产小视频在线观看| 国产午夜精品在线观看| 亚洲素人一区二区| 亚洲精品一区在线观看香蕉| 久久久久久国产精品一区| 最新国产成人av网站网址麻豆| 免费日韩视频| 蜜臀av一级做a爰片久久 | 亚洲欧美综合一区| 亚洲一区二区av电影| 免费不卡在线视频| 欧美1区免费| 国产在线精品成人一区二区三区| 亚洲视频在线观看网站| 国产精品99久久久久久白浆小说| 免费在线国产精品| 亚洲国产三级网| 日韩亚洲欧美精品| 欧美片网站免费| 亚洲剧情一区二区| 亚洲欧美国产77777| 国产精品红桃| 亚洲欧美日韩一区| 久久久xxx| 亚洲国产91| 欧美激情综合亚洲一二区| 亚洲全黄一级网站| 亚洲专区国产精品| 国产农村妇女毛片精品久久麻豆| 亚洲欧美精品中文字幕在线| 午夜精品免费| 狠狠爱综合网| 欧美高清在线播放| 欧美国产亚洲精品久久久8v| 久久久久久伊人| 亚洲大胆人体视频| 免费在线观看日韩欧美| 欧美激情一区二区三区| 99精品久久| 一区二区三区av| 最新日韩中文字幕| 中文国产成人精品| 国产日韩欧美精品综合| 久久久久久高潮国产精品视| 欧美承认网站| 一区二区不卡在线视频 午夜欧美不卡'| 欧美激情一区二区三区在线视频观看| 亚洲精品黄网在线观看| 午夜欧美大片免费观看| 尤物99国产成人精品视频| 欧美国产免费| 午夜影院日韩| 亚洲日本欧美在线| 久久久99免费视频| 日韩视频一区二区三区在线播放| 国产精品视频第一区| 久久永久免费| 亚洲男人影院| 亚洲茄子视频| 久久亚洲春色中文字幕久久久| 99精品欧美一区二区三区| 国产日韩欧美一区在线| 欧美精品一区三区在线观看| 亚洲欧美精品在线| 亚洲免费观看在线视频| 久久综合九色综合久99| 亚洲专区免费| 99re这里只有精品6| 韩国三级电影一区二区| 国产精品久久九九| 欧美精品偷拍| 久久久一区二区三区| 亚洲欧美变态国产另类| 亚洲免费av网站| 亚洲第一精品电影| 麻豆91精品| 亚洲第一页自拍| 亚洲永久在线| 99国产精品99久久久久久粉嫩|