本文和大家分享的主要是python的.py文件轉(zhuǎn)exe文件相關(guān)內(nèi)容,希望通過(guò)分享,對(duì)大家學(xué)習(xí)python有所幫助。廢話(huà)不多說(shuō),下面進(jìn)入正題。
.py文件轉(zhuǎn)exe文件
1.軟件說(shuō)明:
用python寫(xiě)一個(gè)視頻處理軟件,用到的庫(kù)是moviepy
2.所用軟件:
Python 3.6.5 32位
pycharm 專(zhuān)門(mén)的python編輯ide,推薦使用
pyinstaller
imageMagick.exe (記住他的安裝路徑,后面會(huì)用到)
注意事項(xiàng):切記安裝32位的python,因?yàn)?/span>32位python在64位系統(tǒng)上打包出來(lái)的exe文件可以在32和64位系統(tǒng)運(yùn)行,反之不可以。我就是先裝的64位,然后依賴(lài)都裝完了才發(fā)現(xiàn)需要32位,又全部卸掉重新裝,心好累
3.安裝所需依賴(lài):
安裝moviepy:pip install moviepy
裝了imagemagic后可能還是會(huì)報(bào)錯(cuò),找不到那個(gè)錯(cuò)的截圖了,執(zhí)行下面的命令即可解決:pip install python-magic-bin==0.4.14
安裝requests:pip install requests
安裝eyed3:pip install eyed3(我是用到了這個(gè)依賴(lài),不用的可以不裝)
安裝打包工具pyinstaller:pip install pyinstaller
打包命令: pyinstaller –F –p moviepy; demo1.py
參數(shù)說(shuō)明:-F 打包成一個(gè)文件
-p 把moviepy文件夾打包進(jìn)去
4.遇到的問(wèn)題
4.1 windows下面python不能自動(dòng)識(shí)別出imagemagick的安裝目錄,必須手動(dòng)修改,
修改python lib/site-packages/moviepy/config_defaults.py 到imagemagic的安裝目錄
IMAGEMAGICK_BINARY = r"C:\Program Files\ImageMagick-6.7.3-Q16\convert.exe"
4.2用pyinstaller打包后報(bào)錯(cuò):moviepy.audio.fx.all has no attribute of audio_fadein
解決方案:將python/lib/sitepackages/moviepy文件夾拷貝到demo1.py所在的目錄,修改moviepy/audio/fx/all 下的__init__.py文件
將exec這句注釋掉,然后具體列出引入的包,因?yàn)?/span>pyinstaller不認(rèn)exec這種方式,
改成如圖1的方式,然后打包的時(shí)候加上-p moviepy;即可解決問(wèn)題
圖1
4.3報(bào)錯(cuò):libmagic not found.明明安裝了magic依賴(lài),可是Pyinstaller打包的時(shí)候打不進(jìn)去,必須在.py文件夾下放置C:\python32\Lib\site-packages\magic下的libmagic文件夾和magic.py文件,打包好的exe文件也要有這兩個(gè)東西,即如圖2所示。要修改magic.py的156行,bin_dist_path = os.path.join(os.path.dirname(__file__), 'libmagic')
修改為bin_dist_path = os.path.join(os.path.dirname(sys.executable), 'libmagic')
圖2
這些全都搞定之后,打包的exe文件就可以在windows32位和64位系統(tǒng)上運(yùn)行了
來(lái)源:網(wǎng)絡(luò)