91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pyinstaller打包單個exe后無法執行錯誤的解決方法

發布時間:2020-10-09 05:16:08 來源:腳本之家 閱讀:454 作者:RuiyuanZHOU 欄目:開發技術

1、執行環境說明

python版本3.7

直接使用pip進行安裝pywin32、pyinstaller

pip install pywin32
pip install pyinstaller

2、使用了第三方庫的情況

建議在打包之前務必找到第三方庫的包,把包復制到到跟myfile.py同目錄下,然后再使用以上2種方式打包,否則會打包失敗或者即使打包成功,程序也會閃退。pyinstaller -p參數是添加的pyinstaller打包程序時的掃描路徑,假設venv\Lib\site-packages是包存放路徑,那么也可以使用以下命令打包:

pyinstaller -p venv\Lib\site-packages -F xxx.py

3、failed to execute script 錯誤

首先使用

pyinstaller -F -w code.py

進行exe打包,得到的單個.exe文件,運行后提示failed to execute script 錯誤

排錯過程:使用pyinstaller -D code.py進行exe打包,得到一個目錄文件,通過命令行執行.exe文件提示The 'six' package is required; normally this is bundled with this package錯誤

說明pyinstaller打包后,需要six等庫,最終確認需要在code.py中添加以下庫:

import six
import packaging
import packaging.version
import packaging.specifiers
import packaging.requirements

當然,six和packaging庫建議使用pip安裝。加入以上庫后,使用pyinstaller -D code.py打包執行不再出錯。

4、找不到數據文件夾

有些程序包含了數據文件夾,不能直接按資源文件方式打包,需要在執行文件所在的文件夾內創建這些數據文件。一般情況下在腳本中我們可以使用os.path.split(os.path.abspath( __file__))來的到code.py的路徑,然后拼接得到數據文件夾。但之后使用pyinstaller -F code.py打包成單個exe文件,在未讀取數據文件夾的情況下運行正常,一旦打開數據文件,就會閃退,命令行窗口會顯示打不開數據文件。因為PyInstaller會創建臨時文件夾temp,程序代碼在這個臨時文件夾中運行,我們可以用以下幾個語句來查看正式運行路徑:

  import sys
  import os
  print(sys.path[0])
  print(sys.argv[0])
  print(os.path.dirname(os.path.realpath(sys.executable)))
  print(os.path.dirname(os.path.realpath(sys.argv[0])))

得到的結果是os.path.dirname(os.path.realpath(sys.executable))和os.path.dirname(os.path.realpath(sys.argv[0]))才是含數據文件夾的路徑。因此可以按如下方式取得文件路徑,然后根據需要拼接得到數據文件夾的真實路徑:

  if hasattr(sys, '_MEIPASS'):
  # PyInstaller會創建臨時文件夾temp
  # 并把路徑存儲在_MEIPASS中
    self.appPath = os.path.dirname(os.path.realpath(sys.executable))
  else:
    self.appPath, filename = os.path.split(os.path.abspath( __file__))

修改完成后,分別以以下三種方式打包,運行成功

pyinstaller -D code.py
pyinstaller -F code.py
pyinstaller -w -F code.py

以上這篇pyinstaller打包單個exe后無法執行錯誤的解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富阳市| 长垣县| 新乡县| 黄龙县| 宣城市| 磐安县| 揭东县| 平南县| 岳阳县| 平武县| 湖北省| 邳州市| 澎湖县| 缙云县| 务川| 砚山县| 沅陵县| 南投县| 松阳县| 清涧县| 阳泉市| 虞城县| 华阴市| 乐亭县| 新巴尔虎右旗| 共和县| 石家庄市| 华容县| 上犹县| 霞浦县| 广东省| 宣城市| 台安县| 镶黄旗| 娱乐| 若羌县| 双城市| 黑龙江省| 江山市| 石嘴山市| 甘谷县|