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

任我行

一天一個腳印......
每日一句:
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>
            亚洲观看高清完整版在线观看| 亚洲美女精品久久| 麻豆精品在线视频| 久久久久久9| 久久精品亚洲精品| 久久美女性网| 欧美插天视频在线播放| 欧美日韩另类综合| 国产女主播一区二区| 伊人精品在线| 在线一区观看| 久久国产精品亚洲va麻豆| 久久婷婷人人澡人人喊人人爽| 欧美电影免费观看高清完整版| 亚洲精品永久免费| 亚洲欧美一区二区激情| 久久久久久9| 国产精品啊v在线| 亚洲第一中文字幕| 亚洲欧美日韩国产综合在线 | 久久精品国产精品亚洲综合| 久久久久久久综合| 欧美精品一线| 国产精品国产自产拍高清av王其| 欧美专区日韩视频| 最新国产拍偷乱拍精品| 在线亚洲欧美专区二区| 麻豆视频一区二区| 亚洲视频专区在线| 毛片精品免费在线观看| 国产老女人精品毛片久久| 亚洲精选一区| 久久精品一区二区三区不卡牛牛| 欧美制服第一页| 亚洲免费高清| 欧美激情第10页| 激情五月***国产精品| 在线视频一区观看| 麻豆久久精品| 新狼窝色av性久久久久久| 欧美乱大交xxxxx| 在线观看欧美成人| 久久电影一区| 亚洲一区二区三区免费视频| 欧美激情网友自拍| 亚洲日韩第九十九页| 噜噜噜在线观看免费视频日韩| 亚洲制服av| 国产精品美女一区二区在线观看 | 亚洲一级二级| 亚洲人成在线观看一区二区| 久久精品日韩一区二区三区| 国产精品一区久久久久| 亚洲在线观看| 一区二区欧美激情| 欧美午夜精品一区| 亚洲欧美久久久| 亚洲性感激情| 国产亚洲一二三区| 久久久青草青青国产亚洲免观| 亚洲欧美国产精品桃花| 国产精品色网| 久久精品日产第一区二区| 欧美在线国产精品| 激情久久五月| 亚洲丰满在线| 欧美片在线播放| 亚洲一区三区视频在线观看| 一区二区三区蜜桃网| 国产精品麻豆成人av电影艾秋| 亚洲欧美日产图| 午夜精品剧场| 黄色av成人| 亚洲黄一区二区三区| 欧美日韩精品一区| 欧美在线观看视频在线| 久久久久久国产精品一区| 亚洲激情在线观看| 日韩一区二区精品视频| 国产免费成人av| 欧美wwwwww| 国产精品成人在线观看| 欧美日韩精品免费观看| 欧美激情在线免费观看| 最新成人av网站| 99视频精品在线| 国产精品一区在线观看你懂的| 欧美在线国产| 麻豆精品视频在线观看| 亚洲无线视频| 久久黄色级2电影| 亚洲剧情一区二区| 亚洲嫩草精品久久| 亚洲黄色一区| 亚洲五月六月| 亚洲人成在线观看一区二区| 亚洲午夜精品| 91久久精品一区二区别| 一区二区欧美亚洲| 在线成人欧美| 亚洲欧美成aⅴ人在线观看| 亚洲丶国产丶欧美一区二区三区| 亚洲精品欧洲| 亚洲国产另类久久久精品极度 | 亚洲欧美日韩国产综合精品二区| 韩国美女久久| 亚洲午夜女主播在线直播| 在线日韩中文字幕| 午夜国产精品视频免费体验区| 亚洲国产欧美国产综合一区| 欧美一区二区三区在线| 亚洲一区二区三区在线播放| 欧美+亚洲+精品+三区| 久久中文字幕一区| 国产亚洲观看| 亚洲综合清纯丝袜自拍| 亚洲一二三区在线| 欧美日韩在线高清| 亚洲日本成人女熟在线观看| 亚洲激情偷拍| 欧美成人精品1314www| 欧美成人国产一区二区| 韩国成人福利片在线播放| 午夜久久影院| 久久精品最新地址| 国产精品性做久久久久久| 亚洲深夜福利网站| 亚洲欧美国产精品桃花| 欧美视频福利| 亚洲一区综合| 欧美在线3区| 国产亚洲精品久久久久久| 亚洲欧美日本伦理| 欧美在线免费看| 国产亚洲午夜| 久久男女视频| 亚洲第一网站| 一区二区三区 在线观看视频| 欧美国产综合视频| 亚洲精品日韩精品| 亚洲永久在线观看| 国产麻豆综合| 久久国产主播| 亚洲高清激情| 亚洲一区免费网站| 国产三级欧美三级日产三级99| 亚洲欧美久久久久一区二区三区| 久久激情综合网| 在线观看亚洲视频| 亚洲欧美日韩天堂| 欧美一区二区三区视频| 久久精品99| 一区在线播放视频| 蜜桃久久精品一区二区| 最新中文字幕一区二区三区| 亚洲天堂av图片| 国产亚洲精品高潮| 午夜免费在线观看精品视频| 午夜精品久久| 国产精品免费看| 一区二区三区欧美日韩| 亚洲视频在线看| 欧美日韩免费观看一区| 99视频精品全部免费在线| 亚洲一区二区在| 欧美视频在线一区| 亚洲一区精品视频| 校园激情久久| 国产一区二区成人| 久久九九精品99国产精品| 久久久久五月天| 亚洲电影成人| 欧美精品在线一区二区三区| 亚洲精品欧美在线| 亚洲女人天堂av| 国产精品自拍一区| 久久久久久久久岛国免费| 欧美不卡在线视频| 一本久道久久综合狠狠爱| 国产精品99免视看9| 午夜影院日韩| 裸体丰满少妇做受久久99精品| 1024精品一区二区三区| 欧美午夜激情小视频| 久久久亚洲国产美女国产盗摄| 99在线精品视频| 欧美国内亚洲| 久久色在线观看| 性欧美1819sex性高清| 日韩一级精品| 欧美裸体一区二区三区| 欧美国产综合一区二区| 久久电影一区| 亚洲午夜激情在线| 亚洲人成人一区二区三区| 精品动漫一区| 狠狠色综合网站久久久久久久| 国产精品日韩久久久| 欧美日韩美女在线| 欧美日韩国产首页在线观看|