點(diǎn)擊上方藍(lán)色字關(guān)注 [ 啃餅思錄 ]~
我回來了,說好的回來。。。
上次給大家透露了本期文章是爬取抖音小視頻,因?yàn)槲覀儧]有介紹過如何爬取app,因此依舊是爬取網(wǎng)站。抖音有一個(gè)國際版,其網(wǎng)址是https://www.tiktok.com/,但是在國內(nèi)訪問不了,你需要訪問外國網(wǎng)站。很不幸這篇文章寫到一半的時(shí)候,我的掛掉了,所以這篇文章就先擱淺了。等后面有空就出幾篇基于app的爬蟲文章,今天我們的主題是如何將py文件打包成exe格式,以便于在Windows系統(tǒng)上脫機(jī)運(yùn)行。好了話不多說,走你。
1
首先我們需要下載pyinstaller這個(gè)工具,鏈接在這里:http://www.pyinstaller.org/downloads.html,進(jìn)入到下載頁面:
當(dāng)然如果你覺得下載太麻煩,你可以直接使用
pip install pyinstaller
這個(gè)命令直接下載,然后執(zhí)行
pip install --upgrade pyinstaller
檢查一下是不是最新的版本。當(dāng)然官方也提供了一個(gè)直接安裝的方法:
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz
不出意外的話,它會(huì)順便安裝下面的依賴:
altgraph-0.16.1 macholib-1.11 pefile-2018.8.8 pyinstaller-3.4 pywin32-ctypes-0.2.0
需要說明的是pyinstaller目前最高只支持Python3.4的版本,其他高版本暫不支持。
接下來就是重點(diǎn),如何將py文件打包為exe可執(zhí)行文件?往下看,很簡單,兩步就能解決!第一步,先準(zhǔn)備一個(gè)helloWorld.py文件,第二步使用
pyinstaller -F helloWorld.py
就能在當(dāng)前生成的dist文件夾下面,發(fā)現(xiàn)一個(gè)helloWorld.exe的可執(zhí)行文件了。(生成路徑中不要包含中文,否則就會(huì)出現(xiàn)問題)
現(xiàn)在介紹一下pyinstaller后面添加參數(shù)的含義:
-F 表示生成單個(gè)可執(zhí)行文件
-w 表示去掉控制臺(tái)窗口,這在GUI界面時(shí)非常有用。不過如果是命令行程序的話那就把這個(gè)選項(xiàng)刪除吧!
-p 表示你自己自定義需要加載的類路徑,一般情況下用不到
-i 表示可執(zhí)行文件的圖標(biāo)
了解了上面的參數(shù)以后,我們來嘗試修改一下生成文件的圖標(biāo),你只需要在輸入的命令中添加一個(gè)-i tubiao.ico(圖標(biāo)的相對(duì)路徑)即可:
你只需要在終端中輸入:
pyinstaller -F -i dog.ico helloWorld.py
就可以在dist文件夾下面,發(fā)現(xiàn)一個(gè)helloWorld.exe的可執(zhí)行文件了。
最后附上我helloWorld.py里面的猜數(shù)字游戲代碼,你們可以嘗試打包完去玩一玩這個(gè)小游戲吧:
1#!/usr/bin/python 2# -*- coding:utf-8 -*- 3# @Time: 2019/4/6 10:26 4# @Author: Envy 5# @File: helloWorld.py 6 7 8import random 9print("######## 猜數(shù)字小游戲(100以內(nèi)) #########")10print("# 1.開始游戲 2.任意鍵退出游戲 #")11print("# 注:猜錯(cuò)三次游戲自動(dòng)退出. #")12print("##################################")13put = input("請(qǐng)輸入:")14if put == "1":15 number = 316 secret = random.randint(1, 100)17 while number > 0:18 temp = input("不妨猜一猜我現(xiàn)在心里想的數(shù)字是幾:")19 temp2 = temp.strip()20 if temp2.isdigit():21 temp1 = int(temp2)22 if temp1 ==secret:23 exit("哼,我心里想的數(shù)是%s,居然被你猜中了,不過猜中也沒有獎(jiǎng)勵(lì)^_^ 游戲結(jié)束啦!"%secret)24 elif number == 1:25 exit("一丟丟笨了,三次機(jī)會(huì)都沒有猜到!不妨告訴你吧,我心里想的數(shù)字是:%s" % (secret))26 elif temp1 > secret:27 print("我心想的數(shù)字比%s小,還剩%s次機(jī)會(huì)啦"%(temp1,number-1))28 else:29 print("我心想的數(shù)字比%s大,還剩%s次機(jī)會(huì)啦"%(temp1,number-1))30 else:31 print("Error:'%s'不是一個(gè)數(shù)字,請(qǐng)輸入一個(gè)整數(shù)" % temp)32 number += 133 number -= 1343536else:37 exit("退出游戲成功!")
蘋果電腦的用戶是不是覺得很無奈?哈哈哈,沒有的事,接下來就教你如何打包為dmg格式文件。繼續(xù)往下看!
這里蘋果用戶使用的是py2app這個(gè)工具,不過需要說明的是這個(gè)工具打包后的dmg格式,只能在你電腦上運(yùn)行,這個(gè)和使用pyinstaller打包的完全不一樣,pyinstaller打包的軟件可以在任意一臺(tái)Windows電腦上運(yùn)行。
第一步:進(jìn)行安裝py2app(注意使用pip3源)
pip3 install py2app
第二步:查找 py2app 中 py2applet 的地址
sudo find / -name "py2applet" -type f
第三步:創(chuàng)建 setup 文件
"py2applet 地址" --make-setup "python文件地址"
第四步:發(fā)布應(yīng)用
rm -rf build dist
python3 setup.py py2app -A
這個(gè)過程相對(duì)來說是比較復(fù)雜的,但是也是很好理解,所以我就不一一演示了。
前面說了Windows和MacOs,那么Linux系統(tǒng)呢?你可以使用cx_Freeze,這個(gè)和前面的使用方法差不多,我就不一一介紹了。
好了,今天的分享就到這里了,如果你覺得不錯(cuò),請(qǐng)分享一下吧。
聯(lián)系客服