2020年7月19日 星期日

如何在不開啟Anaconda的狀況底下啟動帶有PyQt5操作介面的CPython程式

筆者在Anaconda上開發了一支小程式calculator.py,搭配上用PyQT5框架開發的操作介面,可用來做複數運算。在Anaconda當中執行該程式,視窗如預期顯示在畫面當中,在視窗當中輸入複數計算式測試,輸出也都一切正常。(如圖一)

(圖一) PyQt5為介面的複數計算機

接下來筆者想要在不開啟Anaconda來啟動該程式,於是建立了批次檔calculator.bat,當中嘗試使用python.exe .\calculator.py命令來執行。雙擊該批次檔,然而在命令列視窗卻跳出了錯誤訊息:

Traceback (most recent call last):
  File ".\main.py", line 4, in <module>
    from PyQt5 import QtWidgets, uic
ImportError: DLL load failed: 找不到指定的模組。

錯誤訊息顯示程式因為找不到相關的DLL檔案而導致執行失敗。在網路搜尋一番,發現必須先加上call activate.bat指令,才能正確載入DLL檔。因此修改批次檔calculator.bat內容如下:

call C:\ProgramData\Anaconda3\Scripts\activate.bat
C:\ProgramData\Anaconda3\python.exe .\calculator.py

完成之後,雙擊該批次檔便可以正常開啟程式的操作介面了:

(圖二) 透過雙擊批次檔開啟視窗操作介面

接下來便想要將批次檔捷徑釘選到開始視窗,方便之後使用。首先對該批次檔建立捷徑,接著卻發現捷徑並不允許被釘選到開始視窗。所幸在Google找到一個解決方法。首先打開該捷徑的內容視窗。在目標(T)欄位最前面加上加上cmd /c指令,同時將執行(R)欄位設為最小化(如圖三)。完成之後,便可以將該捷徑釘選到開始視窗(如圖四)。在執行時也不會跳出命令列視窗了(最小化)。

(圖三) 修改捷徑屬性

(圖四) 將捷徑釘選到開始畫面

沒有留言:

張貼留言