1. 程式人生 > >pyinstaller 打包python3.6+PyQt5中各種錯誤的解決方案

pyinstaller 打包python3.6+PyQt5中各種錯誤的解決方案

前言:最近在學習微控制器,老師要求自己寫串列埠通訊的上位機程式,我採用比較簡單的pyqt5+serial模組來完成任務,pycharm測試一切正常,在用pyinstaller打包時出現了很多錯誤,查詢了很多資料後得到了解決,這裡彙總一下解決的方法

1. WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency

2999 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of c:\python\python.exe

3031 WARNING: lib not
found: api-ms-win-crt-heap-l1-1-0.dll dependency of c:\python\python.exe 3218 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of c:\python\VCRUNTIME140.dll 3312 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of c:\python\VCRUNTIME140.dll 6494 WARNING: lib not
found: api-ms-win-crt-heap-l1-1-0.dll dependency of c:\python\DLLs_hashlib.pyd 7271 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of c:\python\DLLs\unicodedata.pyd

類似於這種情況就是在python目錄下缺少相關的ddl檔案,而自己的anocoda目錄下是有這些檔案的,我的解決辦法是把anaconda目錄下的檔案直接複製到python的目錄下,問題就得到了解決。
考慮到可能有的人沒有下載anaconda,這裡我把檔案打包下來,大家自取。
連結:

https://pan.baidu.com/s/12G1bzxpA0MMred_EpOblRg 密碼: 4hts

2. 打包完成後執行時出現 “fail to excute script”

這裡是不容易發現問題的,造成這種問題的原因很多。
在使用PyInstaller打包python程式,打包命令為:

pyinstaller -F -w -i manage.ico yourpyfile.py

順便說一下幾個引數的作用

  • -F:是直接生成單獨的exe檔案,不附帶各種依賴檔案的。

- -c:生成的exe檔案開啟方式為控制檯開啟。

  • -w:這個和上面的-c對應,如果你的程式是有ui的,那就用這個-w。這樣不會出現控制檯,直接是你的ui。

  • -I:給你的exe檔案新增一個圖示,後面要緊接著你想要的ico檔案。

  • -p:後面緊跟著你要指定的模組搜尋路徑,如果你的模組安裝的路徑沒有被PyInstaller自動檢索到的話,就需要自己指定了。

出現“failed to excute script xxx”

這個原因實在是太多了,他就是告訴你程式不能執行。如果你是用-w方式打包的,我們這樣不能看出來問題的根源是什麼。所以我們還是以-c方式打包exe看一下控制檯輸出的error內容是什麼。

cmd下執行打包出來的exe

給我報的錯誤是:no modle named "PyQt5.sip"

其實tensorflow這個包我已經匯入了,而且可以被PyInstaller搜尋到。只是它提示我的tensorflow.contirb這個搜尋不到,

我猜是版本問題?因為我的tensorflow更新過,最新版的去掉了好多東西,也有一些模組改了實現方式和名稱。‘

真正的原因我還沒找,但是就先這樣吧,因為我想趕緊把問題解決了。

那就:

pyinstaller -F -I manage.ico yourpyfile.py --hidden-import PyQt5.sip

這樣打包,直接把它想要import的這個子包遮蔽掉了,反正也沒用到。

到這裡所有的問題都得到了解決!
222.png

相關推薦

pyinstaller 打包python3.6+PyQt5各種錯誤解決方案

前言:最近在學習微控制器,老師要求自己寫串列埠通訊的上位機程式,我採用比較簡單的pyqt5+serial模組來完成任務,pycharm測試一切正常,在用pyinstaller打包時出現了很多錯誤,查詢了很多資料後得到了解決,這裡彙總一下解決的方法 1. W

最新pyinstaller打包python3.6.3完整過程

前言 pyhton3.6.3是目前最新的版本,將python指令碼打包為可執行的exe檔案是通常的需求,這其實是一件比較簡單的事情,但因為python混亂的版本控制和管理,網路上各種臨時方法和補丁滿天飛,應小夥伴的需求再上一篇部落格,把python3.6.3的

Windows下利用pyinstaller打包Python3.6指令碼

最近用python寫了一個TensorFlow程式,基於谷歌的facenet來檢測人臉,我寫的是伺服器端,包括一個tcp通訊協議,問題來了,如何將其打包成一個exe檔案釋出?本人電腦:Windows 10 系統;Python 3.6.3(Anaconda 3.5.0.1安裝)

tcl8.4.14 AIX5.3 xlc 6編譯錯誤解決

在編譯tcl8.4.14  64位版本的連線過程中,出現如下錯誤: rm -f libtcl8.4.so /usr/local/bin/tcl8.4.14/unix/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry -b64 -o

libnids libpcap libnet 安裝錯誤解決方案(mark)

安裝libpcap出現: 1:error: Your operating system's lex is insufficient to compile libpcap. ex is a lex replacement that has many advantages, i

使用pyinstallerpython3.6指令碼打包為exe

原文出處:http://blog.csdn.net/jayloncheng/article/details/77567638 在此,我們使用pyinstaller(development)版本可以打包python3.6版本生成的python指令碼為exe程式。因為pyinstaller

利用pyinstallerPython3.6檔案打包成exe程式

  1.電腦系統為win10 安裝的是Python3.6(32位)   2.安裝pyinstaller 因為我Python3.6安裝在D盤,所以在CMD中定位到D:\Python\Scripts,然後執行命令pip install pyinstaller,等待安裝成功之後到

spring cloud打包成jar過程錯誤一例:NoClassDefFoundError junit4.SpringRunner

mvn spring cloud jar noclassdeffounderror 將Spring Cloud對應項目打包成Jar文件,在TESTS環節總會報錯:只要執行mvn命令時跳過TESTS環節即可:mvn -Dtest -DfailIfNoTests=false install p

js備戰春招の四のdevtool各種錯誤、調試的使用技巧

gpo 拋出異常 具體步驟 執行 reserve 數字 racket 異常 沒有 try 語句允許我們定義在執行時進行錯誤測試的代碼塊。 catch 語句允許我們定義當 try 代碼塊發生錯誤時,所執行的代碼塊。 JavaScript 語句 try 和 catch 是成對出

Python3.6.5 pip命令錯誤 安裝第三方庫方法

在安裝好Python環境後,使用pip命令會報錯: You are using pip version 9.0.3, however version 10.0.1 is available. You should consider upgrading via the 'python -m p

基於python3.6+pyQT5利用Graphics View 控制元件顯示影象並實現其縮放

     利用eric6+QTdesigner 實現了軟體介面的編寫,軟體介面如圖所示,一共有三個控制元件(放大按鈕、縮小按鈕以及Graphics View),具體佈置如圖所示,將按鈕項式名稱改為“放大”、“縮小”。 然後編譯介面,生成程式碼如下: from Py

Bug:比例尺(ScaleLine)在Openlayers v4.6.5計算錯誤

該bug,官方已經在後續版本修正,故只針對OL 4.6+。在此自做記錄。 場景: 1、引用Openlayers v4.6.5的js檔案 2、view的座標系採用EPSG:4326 3、比例尺的單位為

Python3.6 PyQt5 pycharm 環境搭建

一.安裝PyQt5,版本:PyQt5-5.9-5.9.1-cp35.cp36.cp37-none-win_amd64.whl 1.下載,官方:https://pypi.python.org/pypi/PyQt5 或者百度雲盤:連結:http://pan.baidu.c

pyinstaller打包python檔案出現"RuntimeError: maximum recursion depth exceeded in comparison "錯誤解決方案

一、出現原因: python預設迭代次數有限(大概是1000左右),如果你引用了plot畫圖,或者某個迴圈方法超出此限制,就會報這個錯誤 二、解決方法: 打包失敗,也會生成一個spec檔案,如你的主python檔案叫做main.py,則修改main.spec: 新增程式碼行:impo

Python3.6:print 語法錯誤

 print 語法錯誤 print  step, sess.run(W), sess.run(b) 錯誤原因:         python2.7    print 'hello '   &n

利用pyinstaller打包Python的PyQt5程式並載入icon和圖片

本人這幾天經常忘記各種密碼,於是寫了一個簡單的程式來記錄賬號和密碼,利用PyQt5寫了介面,python寫了程式,但是在將程式打包成可執行檔案時發現程式介面中包含的圖片無法顯示,百度,google了很長時間才找到解決辦法。下面就介紹一下。

Windows下使用pyinstaller打包python3.5程式(從安裝開始)

前幾天寫了一個程式,想給朋友用,但是讓他一個從來沒編過程的人去裝Python還有一堆相關的包,是不現實的,所以想把.py打包成可執行檔案。 打包工具:pyinstaller 系統及配置:Windows10 、64位 Python3.5 因為pyinsta

centos7python3.6.5使用slipt函式切割字串後中文亂碼

由於python預設為Unicode編碼,導致utf-8中文字元切割後輸出為亂碼 解決辦法: 思路是設定編碼格式為utf-8 程式碼: import io import sys sys.st

python3.6+pyqt5+pycharm5介面程式設計例項

本篇給出在pycharm中構建前端視覺化介面的程式碼。 操作步驟 1 開啟pycharm,點選tools-external tools-QTDesigner,進入GUI介面: 2 採用拖拉的方式建立lable、EditText、PushButton

cx_freeze打包python3.6成exe/msi應用

前言 因專案需要使用客戶端採集使用者資料庫表資訊,需要提供給客戶在本地執行採集,因此使用了python編寫了程式,打包成可執行檔案供使用者下載使用。編寫了使用了最新版本的python3.7,打包時各種問題,第一次接觸也解決不了,百度了一大圈,很多人說打包工具不