一、概述
我一直使用pyinstaller將python代碼封裝好,給其它業務人員使用。這種辦法的好處是業務人員不需要安裝python程序了,直接雙擊我提交給他們的exe格式的文件即可。操作方便而且保護代碼。但是現在又接到個需求,要通過python從oracle數據庫中取數,可oracle的客戶端是10g32位的,也就是說,我需要在64位系統下通過運行32位python,然后將python文件打包成32位的執行程序,這樣做行不行?我的回答是行。
二、步驟
事先聲明,請下載跟我一模一樣的版本號,否則可能安裝不成功
1. 下載32位python 3.5.4
由於oracle客戶端是32位的,所以必須使用32位的python,幸好64位的操作系統是能夠運行32位的python的。
下載地址,https://www.python.org/downloads/windows/
2. 下載安裝32位pywin32,打包成exe需要pywin32這個包。
下載地址:https://sourceforge.net/projects/pywin32/files/pywin32
3. 安裝python 3.5.4
這一步沒什么好說的,點擊安裝,一直下一步即可。唯一要注意的是將python的路徑加到path里面即可
4. 安裝pywin32
這一步也沒什么好說的,點擊安裝,一直下一步即可。
5. 安裝pyinstaller
使用cmd進入到dos界面
pip install pyinstaller
三、測試
1. 在D盤寫一個python測試文件
hello.py
#coding=utf-8 print('hello world') print('世界,你好') input('按任意鍵退出')
2. 打包文件
如果不出意外的話會在D:\dist目錄下面生成hello.exe,雙擊執行hello.exe
從任務管理器可以看到生成的exe是32位的,但是仍然能在64位系統中運行
四、總結
之所以下載python3.5 32位的,是因為pyinstaller 32位的包好像支持到3.5,如果使用python3.6或3.7安裝pyinstaller 32位會報錯。
也不推薦安裝python2.7 32位的,pyinstaller也裝不上。
文檔有參考:https://www.cnblogs.com/xiohao/p/11261792.html,但是沒有他弄得那么復雜。