一、實驗環境
1.Windows7x64_SP1
2.pywinauto_0.6.7
二、需求背景
個人編寫了一個軟件安裝器,用於一鍵安裝開發軟件及工具,該工具基於python + pywinauto。
但問題來了,新電腦上未安裝python和圖像界面操作庫pywinauto,難道先手動安裝python + pywinauto,再運行軟件安裝器安裝其他軟件?
有兩種解決方式
2.1 方式一:
使用PyQt制作GUI界面,再使用pyinstaller打包為exe文件,該exe程序可以在未安裝python的電腦上運行。
使用該方式,最終發現PyQt庫和pywinauto庫沖突,可以正常打包,但exe程序運行報錯,打開控制台窗口,窗口提示“ImportError:The 'appdirs' package is required”。
本打算在github上向pywinauto的作者發帖提問,為方便其復現問題,手動編寫圖形化界面(未使用Qt設計師),程序運行正常!得出結論是Qt設計師編寫的代碼與pywinauto庫存在沖突。
2.2 方式二:
使用綠色版python,在cmd中調用軟件安裝器,這樣就可以安裝python及相關軟件和工具。
三、實驗步驟
3.1 下載python release版
下載鏈接請參考如下,下載其中的python-3.7.3rc1-embed-win32.zip
https://www.python.org/ftp/python/3.7.3/
解壓后目錄結構如下:
聰明的小伙伴估計已經發現,https://www.python.org/ftp/python/ 可以下載所有版本的python
3.2 安裝pip
下載get-pip.py文件至步驟3.1解壓后的目錄,get-pip.py文件下載方式參考如下:
https://pip.pypa.io/en/stable/installing/,鏈接另存為即可
在當前目錄下打開cmd,輸入命令“python get-pip.py”並敲擊回車運行命令,安裝完成后,文件夾中會增加Lib和Scripts兩個文件夾
3.3 修改python37._pth文件
記事本打開python37._pth,去除import site的注釋,最終修改如下:
python37.zip
.
# Uncomment to run site.main() automatically
import site
3.4 安裝lib
3.4.1 查看已安裝lib
運行cmd,目錄切換至python-3.7.3rc1-embed-win32,輸入python.exe .\Scripts\pip3.exe list,結果如下:
D:\software\python-3.7.3rc1-embed-win32>python.exe .\Scripts\pip3.exe list
Package Version
---------- -------
pip 19.2.1
pywin32 224
pywinauto 0.6.7
setuptools 41.0.1
six 1.12.0
wheel 0.33.4
3.4.2 安裝新lib
以安裝django為例,輸入python.exe .\Scripts\pip3.exe install django==1.10.1
D:\software\python-3.7.3rc1-embed-win32>python.exe .\Scripts\pip3.exe install django==1.10.1
3.5 運行python
D:\software\python-3.7.3rc1-embed-win32>python
Python 3.7.3rc1 (tags/v3.7.3rc1:69785b2127, Mar 12 2019, 21:42:06) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>