Pyinstaller可以將python程序打包成可執(zhí)行文件,在windows上是exe文件,在linux上是二進制可執(zhí)行文件。
工作中有需求是把本地python工程打包成后臺可運行的服務,考慮到部署環(huán)境的不同,可以使用docker鏡像的方式,也可以使用pyinstaller打包成可執(zhí)行文件:
- docker鏡像的好處是運行起來后可以替換內(nèi)部的文件,當程序修改之后可以不需要再進行打包,使用docker cp命令直接替換容器內(nèi)的文件就可以了,適合于開發(fā)環(huán)境;但缺點是安裝包的體積比較大,打包的torch項目鏡像體積在8G+,非常感人;
- pyinstaller的好處是安裝包比較小,直接在服務器上運行,不依賴docker或其他python環(huán)境,缺點就是靈活性比較小,程序修改之后需要重新打包,適合于正式環(huán)境;
考慮到系統(tǒng)要用在正式環(huán)境上,所以還是選擇Pyinstaller的打包方式,因為剛接觸,所以很多地方不懂,比如需要把配置文件放在外面,要怎么打包才可以實現(xiàn)呢;還有之前遇到的本地環(huán)境運行正常,但是打包完成之后就沒有辦法獲取配置文件中的配置了?
第二個問題我們已經(jīng)在上篇中解決了,有興趣可以看看Pyinstaller打包后程序運行報錯configparser.NoSectionError: No section:XX問題解決
對于第一個問題,其實也很簡單,就是使用--add-data
參數(shù),將外部文件添加進運行程序中,比如我要將“config.ini”文件放到運行的根目錄下面,就可以使用下面的打包命令:
pyinstaller --add-data "config.ini:." -F -w yourscript.py
執(zhí)行完就可以在dist目錄下面看到二進制的可執(zhí)行文件,比如這里是yourscript
。
運行的時候?qū)onfig.ini與打包出來的可執(zhí)行文件放在同一目錄下面,按照需要修改config.ini中的配置,然后再運行程序,系統(tǒng)中讀取config.ini的地方就可以獲取到你修改的配置了。
最后,將二進制文件和配置文件上傳到服務器之后,可以使用nohup命令進行后臺運行:文章來源:http://www.zghlxwxcb.cn/news/detail-753273.html
nohup yourscript > log.out 2>&1 &
日志文件會保存在log.out文件中,可以使用tail -f log.out
查看日志的生成情況。文章來源地址http://www.zghlxwxcb.cn/news/detail-753273.html
到了這里,關于【Python】Pyinstaller打包Linux運行文件,暴露配置文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!