欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年06月21日 17:12:27   作者:RuiyuanZHOU  
今天小編就為大家分享一篇pyinstaller打包單個exe后無法執(zhí)行錯誤的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1、執(zhí)行環(huán)境說明

python版本3.7

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

pip install pywin32
pip install pyinstaller

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

建議在打包之前務必找到第三方庫的包,把包復制到到跟myfile.py同目錄下,然后再使用以上2種方式打包,否則會打包失敗或者即使打包成功,程序也會閃退。pyinstaller -p參數(shù)是添加的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打包,得到一個目錄文件,通過命令行執(zhí)行.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打包執(zhí)行不再出錯。

4、找不到數(shù)據(jù)文件夾

有些程序包含了數(shù)據(jù)文件夾,不能直接按資源文件方式打包,需要在執(zhí)行文件所在的文件夾內(nèi)創(chuàng)建這些數(shù)據(jù)文件。一般情況下在腳本中我們可以使用os.path.split(os.path.abspath( __file__))來的到code.py的路徑,然后拼接得到數(shù)據(jù)文件夾。但之后使用pyinstaller -F code.py打包成單個exe文件,在未讀取數(shù)據(jù)文件夾的情況下運行正常,一旦打開數(shù)據(jù)文件,就會閃退,命令行窗口會顯示打不開數(shù)據(jù)文件。因為PyInstaller會創(chuàng)建臨時文件夾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]))才是含數(shù)據(jù)文件夾的路徑。因此可以按如下方式取得文件路徑,然后根據(jù)需要拼接得到數(shù)據(jù)文件夾的真實路徑:

  if hasattr(sys, '_MEIPASS'):
  # PyInstaller會創(chuàng)建臨時文件夾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后無法執(zhí)行錯誤的解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python標準庫os.path包、glob包使用實例

    Python標準庫os.path包、glob包使用實例

    這篇文章主要介紹了Python標準庫os.path包、glob包使用實例,本文直接給出代碼,代碼中有詳細注釋,需要的朋友可以參考下
    2014-11-11
  • Python通過dxfgrabber庫實現(xiàn)獲取CAD信息

    Python通過dxfgrabber庫實現(xiàn)獲取CAD信息

    dxfgrabber?是一個?Python?庫,用于讀取和解析?AutoCAD?DXF(Drawing?Exchange?Format)文件,本文就來教教大家如何利用dxfgrabber庫實現(xiàn)獲取CAD信息吧
    2023-06-06
  • python中dropna()函數(shù)的作用舉例說明

    python中dropna()函數(shù)的作用舉例說明

    這篇文章主要給大家介紹了關于python中dropna()函數(shù)的相關資料,dropna()是pandas庫中的一個函數(shù),用于刪除DataFrame中的缺失值,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • 基于Python列表解析(列表推導式)

    基于Python列表解析(列表推導式)

    今天小編就為大家分享一篇基于Python列表解析(列表推導式),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • pandas實現(xiàn)datetime64與unix時間戳互轉(zhuǎn)

    pandas實現(xiàn)datetime64與unix時間戳互轉(zhuǎn)

    這篇文章主要介紹了pandas實現(xiàn)datetime64與unix時間戳互轉(zhuǎn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python3.6之xlwt如何設置單元格對齊方式

    python3.6之xlwt如何設置單元格對齊方式

    這篇文章主要介紹了python3.6之xlwt如何設置單元格對齊方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python中Unittest框架的具體使用

    Python中Unittest框架的具體使用

    這篇文章主要介紹了Python中Unittest框架的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • python棧實現(xiàn)進制轉(zhuǎn)換的示例詳解

    python棧實現(xiàn)進制轉(zhuǎn)換的示例詳解

    棧(Stack)是計算機科學中常用的數(shù)據(jù)結構,具有眾多實際應用,其中之一是使用棧來實現(xiàn)進制轉(zhuǎn)換,將一個數(shù)字從一種進制表示轉(zhuǎn)換為另一種進制表示,本文將深入研究棧的原理,以及如何使用Python實現(xiàn)十進制到二進制、八進制和十六進制的進制轉(zhuǎn)換,需要的朋友可以參考下
    2023-11-11
  • python處理emoji表情(兩個函數(shù)解決兩者之間的聯(lián)系)

    python處理emoji表情(兩個函數(shù)解決兩者之間的聯(lián)系)

    這篇文章主要介紹了python處理emoji表情,主要通過兩個函數(shù)解決兩者之間的聯(lián)系,本文通過實例代碼給大家介紹的非常完美,對python emoji表情的相關知識感興趣的朋友一起看看吧
    2021-05-05
  • Python基礎之注釋的用法

    Python基礎之注釋的用法

    今天給大家?guī)淼氖顷P于Python的相關知識,文章圍繞著Python注釋的用法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評論