使用PyInstaller將Python程序文件轉(zhuǎn)換為可執(zhí)行程序文件
Windows下采用PyInstall將py文件轉(zhuǎn)換成exe可執(zhí)行文件
好不容易寫完的py文件,想做成exe文件,最開始選擇用py2exe,結(jié)果生成的exe遇到兩個(gè)問題,
1. py程序里print 的信息,cmd中執(zhí)行tool后并沒有顯示在屏幕上;
2. 調(diào)用dll接口,執(zhí)行py文件時(shí)是阻塞等待的,結(jié)果cmd中執(zhí)行exe時(shí),tool很快先返回了,接口還在運(yùn)行,很詭異
一時(shí)找不到解決的辦法,無(wú)奈棄用了,在網(wǎng)上找了pyinstall,試了一下,感覺功能更強(qiáng)大些。。。
安裝PyInstaller之前需確認(rèn)首先安裝了pywin32
下載地址:http://nchc.dl.sourceforge.net/project/pywin32/pywin32/Build%20218/pywin32-218.win32-py2.7.exe
一、PyInstaller安裝
1.下載地址:http://www.pyinstaller.org/wiki
2.最新版本:PyInstaller 2.0
3.直接“解壓縮”之后即可使用,解壓到您想讓他在的路徑即可
二、PyInstaller配置
1.事先寫好py程序
2.在命令行執(zhí)行:
Python Makespec.py --console --onefile NotePad\notepad.py
報(bào)錯(cuò):
Configfile is missing or unreadable. Please run Configure.py before building
3.在命令行執(zhí)行:
Configure.py
報(bào)錯(cuò):
Python 2.6+ on Windows support needs pywin32,Please install http://sourceforge.net/projects/pywin32/
三、PyInstaller使用
PyInstaller的使用相對(duì)簡(jiǎn)單,cmd下進(jìn)入解壓出來(lái)的目錄,執(zhí)行如下命令:
python pyinstaller.py [opts] yourprogram.py
四、主要選項(xiàng)包括:
-F, -onefile 打包成一個(gè)exe文件
-D, -onedir 創(chuàng)建一個(gè)目錄,包含exe文件,但會(huì)依賴很多文件(默認(rèn)選項(xiàng))
-c, -console, -nowindowed 使用控制臺(tái),無(wú)界面(默認(rèn))
-w, -windowed, -noconsole 使用窗口,無(wú)控制臺(tái)
五、注意事項(xiàng)
在轉(zhuǎn)換之前要確保py程序可以正常通過;
如果轉(zhuǎn)換過程中出現(xiàn)什么錯(cuò)誤,用搜索引擎搜索解決一下。
Linux下安裝pyinstaller用于將py文件打包生成一個(gè)可執(zhí)行文件
一、安裝使用流程
1. 首先給系統(tǒng)裝個(gè)easy_install, 如果裝了的可以跳過這步
到pypi官方網(wǎng)址 https://pypi.python.org/pypi/setuptools 去download最新版本
2. 官網(wǎng)上下載pyinstaller,當(dāng)前的最新版本是2.1
(1) 網(wǎng)址 http://www.pyinstaller.org/
3.解包進(jìn)入源碼目錄
(1)
tar -zxvf pyinstaller_2.1.tar.gz
(2)
cd pyinstaller-2.1
運(yùn)行
python setup.py install
4. 拷貝py文件
將需打包的py文件如test.py 拷貝到當(dāng)前目錄
5. 生成可執(zhí)行文件
cd到pyinstaller目錄, 執(zhí)行
python pyinstaller.py test.py
二、可能遇到的問題
1. 用戶權(quán)限
直接在root用戶下運(yùn)行pyinstaller會(huì)報(bào)錯(cuò) “cannot run pyinstaller as user root"...
所以需新增另外一個(gè)用戶,并給用戶對(duì)pyinstaller所在的目錄及所有父目錄添加讀寫權(quán)限,避免運(yùn)行后報(bào)‘mkdir' permission denied...
2. 找不到python lib動(dòng)態(tài)庫(kù)
su切換到新增用戶后,
pyinstaller報(bào)錯(cuò)找不到python動(dòng)態(tài)庫(kù)
raise IOError("Python library not found!")
IOError: Python library not
執(zhí)行python --version查看當(dāng)前版本,并查找/usr/local/lib 下有沒有對(duì)應(yīng)版本的libpython*.*.so文件,
如果有則跳過這步,如果沒有則需要重新安裝python,在python安裝配置中一定要加上--enable-shared參數(shù)就可以生成對(duì)應(yīng)動(dòng)態(tài)鏈接庫(kù),如:
#./configure --enable-shared --prefix=/usr/local #make #make install
我環(huán)境中更新過python版本,導(dǎo)致/usr/lib下不是最新版本的庫(kù)文件,需要將新版本拷貝到對(duì)應(yīng)的/usr/lib目錄下,注意有兩個(gè)文件:
#cp libpython*.so /usr/lib/ #ln -s /usr/lib/libpython*.so.1.0 /usr/lib/libpython*.so
相關(guān)文章
python實(shí)現(xiàn)rest請(qǐng)求api示例
這篇文章主要介紹了python實(shí)現(xiàn)rest請(qǐng)求api示例,需要的朋友可以參考下2014-04-04
PyQt5中QPushButton的用法詳細(xì)解析與應(yīng)用實(shí)戰(zhàn)
PyQt5 是一個(gè)用于創(chuàng)建圖形用戶界面的 Python 綁定庫(kù),它基于 Qt5 應(yīng)用程序框架,在 PyQt5 中,QPushButton 是一個(gè)常用的控件,用于創(chuàng)建按鈕,允許用戶通過點(diǎn)擊來(lái)觸發(fā)某些操作,本文將詳細(xì)介紹 QPushButton 的用法,并通過實(shí)際案例來(lái)展示其強(qiáng)大的功能2024-07-07
Pytorch中torch.flatten()和torch.nn.Flatten()實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Pytorch中torch.flatten()和torch.nn.Flatten()的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02
Pytorch基礎(chǔ)之torch.randperm的使用
這篇文章主要介紹了Pytorch基礎(chǔ)之torch.randperm的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
python爬取NUS-WIDE數(shù)據(jù)庫(kù)圖片
本文給大家分享的是使用Python制作爬蟲爬取圖片的小程序,非常的簡(jiǎn)單,但是很實(shí)用,有需要的小伙伴可以參考下2016-10-10
Python實(shí)現(xiàn)圖片批量加入水印代碼實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)圖片批量加入水印代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Python?哈希表的實(shí)現(xiàn)——字典詳解
這篇文章主要介紹了Python?哈希表的實(shí)現(xiàn)——字典,那么今天我們就來(lái)看看哈希表的原理以及如何實(shí)現(xiàn)一個(gè)簡(jiǎn)易版的?Python?哈希表,需要的朋友可以參考下2023-11-11
Python實(shí)現(xiàn)的根據(jù)IP地址計(jì)算子網(wǎng)掩碼位數(shù)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的根據(jù)IP地址計(jì)算子網(wǎng)掩碼位數(shù)功能,涉及Python數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
Pythont特殊語(yǔ)法filter,map,reduce,apply使用方法
這篇文章主要介紹了Pythont特殊語(yǔ)法filter,map,reduce,apply使用方法,需要的朋友可以參考下2016-02-02

