国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python pyinstaller打包常見(jiàn)問(wèn)題(二):No file找不到文件解決辦法

這篇具有很好參考價(jià)值的文章主要介紹了python pyinstaller打包常見(jiàn)問(wèn)題(二):No file找不到文件解決辦法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

項(xiàng)目場(chǎng)景:

我寫了python程序,本地環(huán)境能正常運(yùn)行,我打算打包成exe文件

方便發(fā)給朋友,讓沒(méi)有python環(huán)境也能正常運(yùn)行

程序調(diào)用了wav文件,一個(gè)音效資源文件,程序調(diào)用的路徑如下:

file = "貓咪吃東西.wav"

問(wèn)題描述:

程序制作完成后,我開(kāi)始打包

在需要打包的程序的目錄上,我進(jìn)入終端輸入以下命令進(jìn)行打包:

pyinstaller -cF xxx.py --add-data="貓咪吃東西.wav;貓咪吃東西.wav" -n="xxx.exe"

完成打包后,我在dist目錄中找到生成的exe

python no file,android,python,windows

運(yùn)行失敗直接閃退,我懷疑是缺少文件導(dǎo)致報(bào)錯(cuò)

為了捕捉原因,運(yùn)行程序添加如下代碼:

python no file,android,python,windows

再次重復(fù)上述步驟進(jìn)行打包,運(yùn)行生成exe文件報(bào)錯(cuò)如下:

python no file,android,python,windows


原因分析:

根據(jù)上面截圖,可以看到exe文件運(yùn)行失敗的原因

是在當(dāng)前目錄上運(yùn)行程序找不到所需資源wav文件

找不到資源文件導(dǎo)致的報(bào)錯(cuò),一般這種情況有兩個(gè)原因:

第一:打包的命令有問(wèn)題,沒(méi)有將資源文件打包進(jìn)去

第二:運(yùn)行程序的讀取資源文件有問(wèn)題,路徑問(wèn)題或者是權(quán)限問(wèn)題(可能性?。?/span>


解決方案:

根據(jù)上述兩個(gè)原因,制定兩個(gè)計(jì)劃:

第一:再運(yùn)行一次exe文件,查看生成的臨時(shí)文件夾有沒(méi)有資源文件

第二:查看臨時(shí)目錄的資源文件的路徑,確認(rèn)路徑與程序讀取文件路徑對(duì)應(yīng)

一、查看臨時(shí)文件夾

運(yùn)行exe后,不關(guān)閉運(yùn)行程序窗口就會(huì)出現(xiàn)想要的臨時(shí)文件夾

window系統(tǒng)運(yùn)行的程序生成的緩存文件,一般都在臨時(shí)文件Temp中

而pyinstaller打包生成的臨時(shí)文件在Temp中文件夾里一般是_ME開(kāi)頭的文件,例如:

python no file,android,python,windows

二、修改打包命令,并打包

根據(jù)圖片可以發(fā)現(xiàn)程序所需資源文件和第三方庫(kù)的存在

但是路徑與與程序讀取文件的路徑不一樣

我們想要的只是wav文件,卻多了個(gè)目錄

了解pyinstaller打包命令后,發(fā)現(xiàn)錯(cuò)誤原因如下:

附加文件指定的路徑,不需要寫名稱

修改打包命令,終端輸入以下命令打包:

pyinstaller -cF xxx.py --add-data="貓咪吃東西.wav;." -n="xxx.exe"

打包生成exe的運(yùn)行后,依然報(bào)錯(cuò)如下:

python no file,android,python,windows

三、修改運(yùn)行程序調(diào)用文件的路徑

打包的exe文件讀取資源時(shí)的路徑需要采用絕對(duì)路徑

在運(yùn)行程序中我添加了一些輸出,具體原因你可以看截圖:

python no file,android,python,windows

根據(jù)截圖你會(huì)發(fā)現(xiàn)

如果你寫的是相對(duì)路徑,那么程序?qū)ふ业馁Y源路徑與正確路徑不一致

運(yùn)行exe所在的目錄就是工作目錄,他會(huì)在當(dāng)前目錄尋找資源文件

所以說(shuō)讀取文件路徑需要先獲取臨時(shí)工作目錄加上資源所在路徑

修改運(yùn)行程序的路徑,代碼如下:

# 獲取目錄路徑對(duì)象
SRC_PATH = Path.absolute(Path(__file__)).parent
# 吃食物聲音路徑:
path = str(SRC_PATH / "貓咪吃東西.wav")  # 拼接獲得文件絕對(duì)路徑字符串

修改完程序后,終端再次輸入命令打包:

pyinstaller -cF xxx.py --add-data="貓咪吃東西.wav;." -n="xxx.exe"

完成打包后,成功運(yùn)行生成的exe,功能也是完整的

總結(jié)

也許朋友pyinstaller打包的exe報(bào)錯(cuò)的原因與我不同,但是朋友也可以根據(jù)以下步驟尋找答案:

1、首先程序中添加異常報(bào)錯(cuò)說(shuō)明

2、確認(rèn)是無(wú)法找到資源文件導(dǎo)致的報(bào)錯(cuò)后,查看臨時(shí)文件夾

3、查看臨時(shí)文件夾的資源文件跟運(yùn)行程序讀取文件的路徑一致嗎

4、確認(rèn)自己的運(yùn)行程序讀取文件路徑是絕對(duì)路徑(臨時(shí)工作目錄加上資源文件的所在的路徑)

5、看看臨時(shí)工作目錄與下列代碼獲取的值一樣嗎? ??

# 獲取目錄路徑對(duì)象
SRC_PATH = Path.absolute(Path(__file__)).parent
# 吃食物聲音路徑:
path = str(SRC_PATH / "貓咪吃東西.wav")  # 拼接獲得文件絕對(duì)路徑字符串

????????如果還是解決不了問(wèn)題的話,可以評(píng)論區(qū)聯(lián)系我文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-835750.html

到了這里,關(guān)于python pyinstaller打包常見(jiàn)問(wèn)題(二):No file找不到文件解決辦法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 關(guān)于Qt程序打包后運(yùn)行庫(kù)依賴的常見(jiàn)問(wèn)題分析及解決方法

    關(guān)于Qt程序打包后運(yùn)行庫(kù)依賴的常見(jiàn)問(wèn)題分析及解決方法

    目錄 一. 大致如下常見(jiàn)問(wèn)題: (1)找不到程序所依賴的Qt庫(kù) version `Qt_5\\\' not found (required by (2)Could not Load the Qt platform plugin \\\"xcb\\\" in \\\"\\\" even though it was found (3)打包到在不同的linux系統(tǒng)下,或者打包到高版本的相同系統(tǒng)下,運(yùn)行程序時(shí),直接提示段錯(cuò)誤即segmentation fault,或者I

    2023年04月17日
    瀏覽(25)
  • SuperMap Hi-Fi 3D SDK for Unreal游戲引擎打包常見(jiàn)問(wèn)題

    SuperMap Hi-Fi 3D SDK for Unreal游戲引擎打包常見(jiàn)問(wèn)題

    目錄 前言 常見(jiàn)問(wèn)題 1.?UE打包報(bào)錯(cuò):ERROR:?No?target?name?was?specified?on?the?command-line. 2.?UE打包報(bào)錯(cuò):ERROR:?Expecting?to?find?a?type?to?be?declared?in?a?module?rules?named?‘XXX’ 3.?UE打包報(bào)錯(cuò):Error:?System.ArgumentException:?An?item?with?the?same?key?has?already?been?added.?Key:?PakLoader

    2024年02月03日
    瀏覽(23)
  • 51.pyinstaller打包后,打開(kāi)exe程序提示SyntaxError: Non-UTF-8 code starting with '\x90' in file的問(wèn)題

    51.pyinstaller打包后,打開(kāi)exe程序提示SyntaxError: Non-UTF-8 code starting with '\x90' in file的問(wèn)題

    問(wèn)題: 最后開(kāi)發(fā)了一款小工具,然后確定一切測(cè)試沒(méi)有問(wèn)題,想通過(guò)pyinstaller將其打包成exe,像類似的打包以前也經(jīng)常打包的,復(fù)雜一點(diǎn)的也都是打包成功的,但這里感覺(jué)程序很簡(jiǎn)單,打包居然出現(xiàn)了以下錯(cuò)誤。 我的python版本是3.8.9,然后pyinstaller版本是5.9.0,不知道會(huì)不會(huì)是

    2024年02月11日
    瀏覽(19)
  • 使用pyinstaller打包python文件遇到的問(wèn)題和解決方法

    使用pyinstaller打包python文件遇到的問(wèn)題和解決方法

    情況1 :當(dāng)所使用的代碼都在一個(gè).py文件中,且該代碼中沒(méi)有調(diào)用其他文件和import自己寫的函數(shù)時(shí) 例如: 打包下面這個(gè)檢查輸入的ip是否符合規(guī)范的程序ipcheck.py,程序中只Import了自帶的庫(kù)re 下載pyinstaller 使用Pyinstaller打包。先進(jìn)入該程序所在的文件夾,在文件資源管理器的文

    2024年02月06日
    瀏覽(98)
  • python pyinstaller打包的exe在win7系統(tǒng)無(wú)法運(yùn)行問(wèn)題解決方法

    python pyinstaller打包的exe在win7系統(tǒng)無(wú)法運(yùn)行問(wèn)題解決方法

    目錄 一 .問(wèn)題起因 二.解決方法 注意: pyinstaller打包之前,請(qǐng)先將bulid文件夾和dist文件夾刪除,這兩個(gè)文件夾是pyinstaller打包后自動(dòng)生成的,刪除重新打包可以避免版本干擾 . ? ? ? ? 近期做了一個(gè)溯源碼項(xiàng)目(開(kāi)發(fā)工具使用的是pycharm2023.1.3),由于是在windows環(huán)境運(yùn)行,于是采用了pyin

    2024年02月07日
    瀏覽(88)
  • Python個(gè)人常見(jiàn)語(yǔ)法問(wèn)題

    之前一直是寫Java的,來(lái)到新公司后,后端語(yǔ)言包括python。 這里對(duì)python語(yǔ)法做一些記錄,防止以后發(fā)生類似的問(wèn)題 1,python是弱類型的語(yǔ)言,比如給同一個(gè)變量賦值不同的類型,是不會(huì)報(bào)錯(cuò)的: ? ?注意,在項(xiàng)目中不要給同一個(gè)變量,前后賦值的類型不一樣。 2,python沒(méi)有使用大

    2023年04月25日
    瀏覽(16)
  • pyinstaller打包程序后提示No module named ‘xxxx‘

    pyinstaller打包程序后提示No module named ‘xxxx‘

    按照python官方提供的打包命令,我使用了-F 、-D 、–hidden-import=‘xxx’、–add-data等都使用過(guò)了,最后無(wú)濟(jì)于事,該報(bào)錯(cuò)還是報(bào)錯(cuò)了。 首先第一點(diǎn),先檢查你的虛擬環(huán)境/全局環(huán)境是否有安裝pyinstaller,可以在設(shè)置-》項(xiàng)目-》python解釋器中看到,我這邊沒(méi)安裝也能用pyinstaller,可

    2024年02月08日
    瀏覽(22)
  • 本機(jī)使用python操作hdfs搭建及常見(jiàn)問(wèn)題

    本機(jī)使用python操作hdfs搭建及常見(jiàn)問(wèn)題

    一、虛擬機(jī)安裝CentOS7并配置共享文件夾 二、CentOS 7 上hadoop偽分布式搭建全流程完整教程 三、本機(jī)使用python操作hdfs搭建及常見(jiàn)問(wèn)題 四、mapreduce搭建 五、mapper-reducer編程搭建 六、hive數(shù)據(jù)倉(cāng)庫(kù)安裝 1.打開(kāi)虛擬機(jī)系統(tǒng),打開(kāi)hadoop 確保網(wǎng)頁(yè)可以打開(kāi) 2.修改本機(jī)hosts文件 ifconfig 查看

    2024年01月18日
    瀏覽(21)
  • pyinstaller 打包后運(yùn)行 出現(xiàn) ModuleNotFoundError: No module named ‘xxx‘

    pyinstaller 打包后運(yùn)行 出現(xiàn) ModuleNotFoundError: No module named ‘xxx‘

    這個(gè)問(wèn)題在網(wǎng)上答案可能很多: 下面給出鄙人的經(jīng)歷和參考: 該問(wèn)題的核心可能是 沒(méi)有安裝lib造成的 ,那么你可能會(huì)問(wèn),”我已經(jīng)安裝了呀,并且pycharm運(yùn)行正常~“ 這里要注意:新版本的pycharm現(xiàn)在都會(huì)在開(kāi)發(fā)目錄下創(chuàng)建一個(gè) venv的文件夾 , 您安裝的lib有可能是在這個(gè)ven

    2024年02月13日
    瀏覽(21)
  • 【Python小工具】解決Python的Pyinstaller將.py文件打包成.exe可執(zhí)行文件后文件過(guò)大的問(wèn)題

    在文章 【Python小項(xiàng)目】Python的GUI庫(kù)Tkinter實(shí)現(xiàn)隨機(jī)點(diǎn)名工具或抽獎(jiǎng)工具并封裝成.exe可執(zhí)行文件中我們實(shí)現(xiàn)了一個(gè)python小項(xiàng)目的制作并將其打包成了.exe可執(zhí)行文件。但是,當(dāng)我們查看了一下文件大小后,好家伙,一百多行代碼打包完竟然有242M。于是,我們靜下心來(lái)思考,是不

    2024年02月10日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包