国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用 py2exe 打包 Python 程序

上回在《使用 PyInstaller 打包 Python 程序》中,我們介紹了使用 PyInstaller 對 Python 程序進(jìn)行打包,今天帶大家認(rèn)識一個新的工具:py2exe。

接下來將從這幾個方面進(jìn)行介紹:基本使用方法、高級參數(shù)、注意點(diǎn)等。

簡介 & 安裝

py2exe 是一個將 python 腳本轉(zhuǎn)換成 Windows 上的可獨(dú)立執(zhí)行的可執(zhí)行程序(*.exe)的工具,這樣,你就可以不用裝 python 而在 Windows 系統(tǒng)上運(yùn)行這個可執(zhí)行程序。

  • 安裝

pip install py2exe# 或者python -m pip install py2exe
  • 1

  • 2

  • 3

  • 1

  • 2

  • 3

基本用法

看一個簡單的例子:先寫一個簡單的腳本,文件名:helloworld.py

#!/usr/bin/env python  # -*- coding: utf-8 -*-  
  def say_hello(name):  
    print('Hello, '   name)
  if __name__ == '__main__':  
    name = input('What's your name:')
    say_hello(name)123456789123456789123456789123456789

下面還需要個用于發(fā)布程序的設(shè)置腳本:mysetup.py,在其中的 setup 函數(shù)前插入語句 import py2exe

from distutils.core import setupimport py2exe setup(console=['helloworld.py'])
  • 1

  • 2

  • 3

  • 4

  • 1

  • 2

  • 3

  • 4

  • 1

  • 2

  • 3

  • 4

  • 1

  • 2

  • 3

  • 4

然后按下面的方法運(yùn)行 mysetup.py:

python mysetup.py py2exe11

運(yùn)行生成的文件:

需要注意,這里需要在 Windows 環(huán)境下運(yùn)行!否則可能會出現(xiàn)以下異常:

上面的命令執(zhí)行后將產(chǎn)生一個名為 dist 的子目錄,其中包含了 helloworld.exe、python24.dll、library.zip 等等文件:

dist 子目錄中的文件包含了程序所必須的東西,你需要將該目錄中的所有內(nèi)容一起發(fā)布。

默認(rèn)情況下,py2exe 會在 dist 下創(chuàng)建以下這些文件:

1、一個或多個 exe 文件;
2、幾個 .pyd 文件,它們是已編譯的擴(kuò)展名,是 exe 文件所需要的;
3、python**.dll,加上其它的 .dll 文件,這些 .dll 是 .pyd 所需要的;
4、一個 library.zip 文件,它包含了已編譯的純的 python 模塊如 .pyc 或 .pyo;

擴(kuò)展

setup 優(yōu)化

我們可以看到生成的 dist 目錄中文件很多,那么是不是可以進(jìn)行優(yōu)化呢?

# mysetup.py# from distutils.core import setup# import py2exe# setup(console=['helloworld.py'])# -*- encoding:utf-8 -*-from distutils.core import setupimport py2exe INCLUDES = []options = { 'py2exe' : { 'compressed' : 1, # 壓縮 'optimize' : 2, 'bundle_files' : 1, # 所有文件打包成一個 exe 文件 'includes' : INCLUDES, 'dll_excludes' : ['MSVCR100.dll'] }}setup( options=options, description = 'this is a py2exe test', zipfile=None, console = [{'script':'helloworld.py'}])
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

  • 30

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

  • 30

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

  • 30

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

  • 30

options 可以用來指定一些編譯的參數(shù),譬如是否壓縮,是否打包為一個文件等。

再次運(yùn)行后,發(fā)現(xiàn)所有內(nèi)容打包進(jìn)了一個 helloworld.exe 程序中。

指定額外的文件

一些應(yīng)用程序在運(yùn)行時需要額外的文件,諸如配置文件、字體、圖標(biāo)。py2exe 并不會自動把他們打包到 dist 目錄,不過可以通過配置參數(shù)來打包。

可以在安裝腳本中用 data_files 可選項(xiàng)指定了那些額外的文件,那么 py2exe 能將這些文件拷貝到 dist 子目錄中。

格式如下:data_files=[(“目的文件夾”,[“文件名”,]), (“目的文件夾”,[“文件名”,]), (“目的文件夾”,[“文件名”,]),]。

比如,我們的程序中有一個名為 images 的目錄放置了程序需要的圖片,

那么我們就需要在 setup 函數(shù)中配置參數(shù) data_files,這個參數(shù)包含一個元組列表 (target_dir,files),其中 target_dir 是指定文件存放的目標(biāo)路徑,files 是這些額外文件的一個列表。

示例如下:

from distutils.core import setupimport py2exe
 
setup(
 
    windows = ['hello.py],
    data_files = [('images',['images\*.jpg'])]
    )12345678123456781234567812345678

上面的示例中,會把 images 目錄中所有的 jpg 文件打包到 dist/images 子目錄中。

注意點(diǎn)

1、py2exe 新版本只支持 python3.3 以上,可以使用 pip install py2exe_py2 來安裝兼容 python2 版本;
2、若在 python3.6 版本下運(yùn)行報(bào)錯,請切換到 python3.4 嘗試;
3、python3 如果是 64 位,生成的 exe 只能在 64 位操作系統(tǒng)下運(yùn)行,使用 32 位 python 可以解決;

4、從 Python 3.3,Windows 在構(gòu)建 Python 時使用的是 Visual Studio 2010,因此生成后,需要手動將 msvcr100.dll 拷到生成目錄下(dist目錄),否則最終的文件運(yùn)行時可能會報(bào)錯;

或者通過 data_files=[('',['MSVCR100.dll'])], 打包其中;

比如,我在 Win10 下打的包,拷貝到 Win7 上,運(yùn)行出錯:

出現(xiàn)類似確實(shí) dll 文件的情況,都可以參考這種方法進(jìn)行解決;

總結(jié)

對于 pyinstaller 和 py2exe 兩種把 Python 文件打包成 exe 的可執(zhí)行文件的方法,都有各自的優(yōu)缺點(diǎn)。但是最終目的都是為了在沒有 Python 環(huán)境下的普通 Windows 系統(tǒng)的電腦中可直接運(yùn)行,這點(diǎn)還是很不錯的。

大家根據(jù)自己的需要,擇優(yōu)選擇就行了。

參考:
1、http://irootlee.com/Py2exe/
2、https://www.jianshu.com/p/afc56b647866

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
py2exe使用方法
用py2exe打包成一個exe文件
[技術(shù)征文]關(guān)于python打包成exe的一點(diǎn)經(jīng)驗(yàn)之談
工具| 將你如何打包py文件脫機(jī)運(yùn)行
手動制作python的exe可執(zhí)行程序
py文件生成exe程序
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服