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

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

前幾天寫了一個程式,想給朋友用,但是讓他一個從來沒編過程的人去裝Python還有一堆相關的包,是不現實的,所以想把.py打包成可執行檔案。

  • 打包工具:pyinstaller
  • 系統及配置:Windows10 、64位
  • Python3.5

因為pyinstaller最高支援版本只到3.5,所以在臺式機上重新安裝python和相關包。

安裝Python3.5

最好是從官網(下載點我)下載。

我進行的是“自定義安裝”, 一是為了自己指定安裝目錄;二是為了勾選以下幾項,最好是在安裝時就將其新增到環境變數,這樣應該會避免之後的很多麻煩。還有要記得自己的安裝目錄
勾選項

安裝必要的包

  1. 安裝pygame

    pip install pygame

  2. 安裝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——windowspyinstaller打包程式不能訪問ip攝像頭

我的程式需要使用RTSP來訪問IP攝像頭,明明在IDE中執行指令碼沒問題,可是打包之後就無法連線攝像頭,程式出現沒有響應。 看到這個博主說的方法,嘗試了一下果然解決了。 使用方法:將opencv_ffmpeg345_64.dll拷貝到欲打包的目錄下,然後使用命令: pyinstaller

windows多路複用IOselect,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問題 ,於是在網上找了一些方法,但是許多是不可行的,後來發現一

PyinstallerPython3.7程式打包成可執行檔案exe

1、通過pip3 install pyinstaller 安裝成功 2、然後執行命令,首先:需要切換到程式所在的目錄 執行命令 pyinstaller -F -w <檔名.py>,-F代表生成可執行檔案,-w代表需要控制檯,不需要就不用加。 3、等執行結束後,會在程式所在的資料夾生成三個資料

WindowsPyInstaller安裝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. 因為之前在