Windows下使用pyinstaller打包python3.5程式(從安裝開始)
前幾天寫了一個程式,想給朋友用,但是讓他一個從來沒編過程的人去裝Python還有一堆相關的包,是不現實的,所以想把.py打包成可執行檔案。
- 打包工具:pyinstaller
- 系統及配置:Windows10 、64位
- Python3.5
因為pyinstaller最高支援版本只到3.5,所以在臺式機上重新安裝python和相關包。
安裝Python3.5
最好是從官網(下載點我)下載。
我進行的是“自定義安裝”, 一是為了自己指定安裝目錄;二是為了勾選以下幾項,最好是在安裝時就將其新增到環境變數,這樣應該會避免之後的很多麻煩。還有要記得自己的安裝目錄。
安裝必要的包
安裝pygame
pip install pygame
安裝PyQt5
pip install pyqt5
安裝之後執行原來寫好的程式,執行成功,說明所需的包已安裝成功。
安裝pyinstaller
pip install pyinstaller
提示安裝成功後,從cmd視窗,cd 進入想要打包的程式所在的目錄。然後進行打包。其中的“-F”是指打包生成一個檔案。相關引數選項參見官網說明。
pyinstaller -F pyqt_gui_game.py
雖然最後提示已成功打包,但是可以看到過程中有很多
WARNING:
8826 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of d:\program files\python35\python.exe
8864 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of d:\program files\python35\python.exe
8905 WARNING: lib not found: api-ms-win-crt-locale-l1-1-0.dll dependency of d:\program files\python35\python.exe
8943 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of d:\program files\python35\python.exe
8979 WARNING: lib not found: api-ms-win-crt-math-l1-1-0.dll dependency of d:\program files\python35\python.exe
9112 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of d:\program files\python35\python35.dll
9150 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of d:\program files\python35\python35.dll
9190 WARNING: lib not found: api-ms-win-crt-environment-l1-1-0.dll dependency of d:\program files\python35\python35.dll
9231 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of d:\program files\python35\python35.dll
9267 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of d:\program files\python35\python35.dll
9305 WARNING: lib not found: api-ms-win-crt-process-l1-1-0.dll dependency of d:\program files\python35\python35.dll
上面貼出的只是其中一部分,但是可以發現,都是因為缺少名為api-ms-win-crt-………相關的dll檔案,
心裡不免忐忑,於是開啟生成的.exe檔案,果然執行錯誤。
由於我筆記本上安裝的是Anaconda(python3.6),在Anaconda的目錄下有這些dll檔案,於是考慮將其copy過來,到桌上型電腦的python35安裝目錄下,即與python35.dll在同一個目錄下。雖然只是抱著試一試的態度,但是事實證明是可行的,打包過程很順利,生成的.exe檔案也可以執行。
但是由於程式過程中需要載入圖片和音樂等檔案,所以即使打包以後,還要將那些檔案放到.exe所在的目錄下,不然會報錯哦,類似下面這種:
pygame.error: Couldn’t open boy.png
pygame.error: Unable to open file ‘pickup.wav’
注意!!!
如果遇到下面的問題:
module = loader.load_module(fullname) ImportError: DLL load failed: 找不到指定的模組。 Failed to execute script pyi_rth_qt5plugins
那是由於路徑問題,可以在打包時新增–paths(或-p)選項,如下:
pyinstaller –paths “D:\Program Files\Python35\Lib\site-packages\PyQt5\Qt\bin” –onefile pyqt_gui_game.py
如此,便可以解決。
(其中的–onefile等同於-F,前面給出的官網參考裡面有詳細說明。)
備註
由於我用的是Anaconda(Python3.6)版本的,pyinstaller可以支援python2.7和python3.3-3.5,詳細可以到其官網檢視。
於是考慮使用pyinstaller。那麼接下來就是轉到Python3.5即可,由於我安裝的是Anaconda,可以進行多版本Python管理。於是在Anaconda官網上找到相關參考,新建了一個環境,並安裝了python3.5,然後在該環境下,安裝了前面提到的所必要的包和pyinstaller,然後打包,但是總會出現錯誤,即使是用上面的方法試著解決,最終還是出現了
Fatal Python error: PyThreadState_Get: no current thread
在網上查相關資料,也無果。最終決定解除安裝Anaconda,並重新安裝了python.org的python3.5,這便有了這篇文章。之所以選擇從python官網下載,是由於其他版本說不定在什麼時候就會出現一些意料之外的問題。
相關推薦
Windows下使用pyinstaller打包python3.5程式(從安裝開始)
前幾天寫了一個程式,想給朋友用,但是讓他一個從來沒編過程的人去裝Python還有一堆相關的包,是不現實的,所以想把.py打包成可執行檔案。 打包工具:pyinstaller 系統及配置:Windows10 、64位 Python3.5 因為pyinsta
【學習筆記】pyQt5學習筆記(8)——windows下pyinstaller打包程式不能訪問ip攝像頭
我的程式需要使用RTSP來訪問IP攝像頭,明明在IDE中執行指令碼沒問題,可是打包之後就無法連線攝像頭,程式出現沒有響應。 看到這個博主說的方法,嘗試了一下果然解決了。 使用方法:將opencv_ffmpeg345_64.dll拷貝到欲打包的目錄下,然後使用命令: pyinstaller
windows下多路複用IO(select,WSAAsyncSelect,WSAEventSelect)
Winsock提供的程式設計介面中socket預設是阻塞的,比如send,recv,connect,可以通過ioctlsocket進行設定非阻塞,server端要管理多個連線可能不是一件容易的事,windows下提供了不少模型可供使用,比如標題的三個,然後完成埠,libeve
Ubuntu下建立第一個qt程式(非qt IDE)
使用QT5.9.1版本,自己建立qt源程式,經qmake編譯實現自己的第一個qt 程式。 /home/ttwang/Desktop目錄下建立一個資料夾qt-learing mkdir qt-learing 在/home/ttwang/Deskto
開發環境-Windows下搭建JAVA Web開發環境(含Tomcat+MySQL)-過程記錄
一、新建雲伺服器 (請注意,文中連結均在“http”中“h”後和“www”第一個“w”後多加一“ ”) 1、在"teng xun 雲",新建雲伺服器:Windows Server 2012 R2 標準版 64位中文版 2、登入雲伺服器:h ttps://w
windows下開發apache模組環境部署(apache,perl,apxs)
轉自:https://blog.csdn.net/hxsstar/article/details/198200291,windows下安裝apache 一定要custom全部安裝,否則就不會有include和lib目錄2,安裝Perl我們將要使用的apx包要用到perl解析編
java獲取某個字元在一個字串中出現的下標(從0開始)
<span style="font-size:18px;"><strong>獲取字元s在字串url中第i次出現的下標(從0開始)</strong></span
大資料基礎學習路線(從零開始)
大資料已經火了很久了,一直想了解它學習它結果沒時間,瞭解了一些資料,結合我自己的情況,整理了一個學習路線,。 學習路線 Linux(shell,高併發架構,lucene,solr) Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,
使用Vue-cli搭建專案流程(從零開始)
一、安裝node.js 去官網下載安裝node.js https://nodejs.org/en/ 或者可以去node.js中文網下載 http://nodejs.cn/download/ 安裝完成以
【vue】使用Vue-cli搭建專案流程(從零開始)
一、安裝node.js 去官網下載安裝node.js https://nodejs.org/en/ 或者可以去node.js中文網下載 http://nodejs.cn/download/ 安裝完成以後通過命令列工具輸入 node -v 檢視安裝的node.js版本 命令列工
伺服器的配置(從0開始)
我是一個前端小白,在雙十一期間由於伺服器比較便宜,入手了一臺配置一般的伺服器,現在開始上手。安裝node後臺。 先是需要給伺服器重置密碼,否則不能登陸伺服器,讓我苦苦尋找好幾分鐘。 進去之後開始準備安裝nodejs。安裝版本:10.13.0 我開始按照官網裝的在最後的時
C語言正數和負數迴圈右移,左移,把某正數的第m位(從0開始)到n位取反
問題:從鍵盤輸入一個整型數(int型),然後再輸入一個正整數m,把第一個數迴圈右移m位後輸出; int型別佔用32位。第一位為符號位,1則為負數,0為正數。 >>往右移動,右邊的丟棄,如果是正數,則左邊補0,如果是負數則補1. <<往左移動,每次移動
編譯原理_計算器_flex、bison實現_(從零開始)
目標:參考範例程式, 用 Flex 和 Bison 實現一個功能更為強大的計算器,包含以下運算: a) 加、減、乘、除運算 b) 乘方、開方運算 c) 位運算 – 與 & 、或 |、非 ~… d) 階乘運算 ! e)sin cos ta
Windows下利用pyinstaller打包Python3.6指令碼
最近用python寫了一個TensorFlow程式,基於谷歌的facenet來檢測人臉,我寫的是伺服器端,包括一個tcp通訊協議,問題來了,如何將其打包成一個exe檔案釋出?本人電腦:Windows 10 系統;Python 3.6.3(Anaconda 3.5.0.1安裝)
【機器學習】Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(2)
Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(2) 原文參考:https://www.cnblogs.com/
【機器學習】Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(1)
Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(1) 1. Anacond的介紹 Anaconda指的是一個
【機器學習】Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(4)
Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(4) 想解決import cv2問題 ,於是在網上找了一些方法,但是許多是不可行的,後來發現一
用Pyinstaller把Python3.7程式打包成可執行檔案exe
1、通過pip3 install pyinstaller 安裝成功 2、然後執行命令,首先:需要切換到程式所在的目錄 執行命令 pyinstaller -F -w <檔名.py>,-F代表生成可執行檔案,-w代表需要控制檯,不需要就不用加。 3、等執行結束後,會在程式所在的資料夾生成三個資料
Windows下PyInstaller(不安裝Python也能執行Py檔案)
直接使用Python開發的軟體時有許多不方便的地方,如需要安裝特定的Python環境,需要安裝依賴庫。為了便於部署,需要將Python原始碼編譯成可執行檔案,編譯後的可執行檔案就能脫離python環境運行了。 安裝 將py編譯成可執行檔案需要使用PyInstaller,需要注意,從百度搜索到
Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(1)
Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(3) 想解決import cv2問題 ,於是在網上找了一些方法,但是許多是無效的,後來發現一種方法可行的,分享給大家。 1.其他方法: 1. 因為之前在