這個狀況在我本機電腦沒有發生
反而是在 Server掛排程的時候發現的...
從Task Scheduler執行排程時發現 為什麼程式會噴錯誤
ImportError: No module named pymssql
使用pip list 也有看到pymssql
第一個猜想應該是 Lib 可能載入的位置不同
可以透過以下幾個方式驗證
1. 寫一個print_lib.py
import sys
print(sys.path)
2. 在要執行的 exe_program.py 檔中 import print_lib.py
3. 先在sypder/vscode 執行 exe_program.py
將此時的sys.path記錄下來
4. 執行排程前, 如果你是用bat 執行排程 那就加pause就好
如果不是 請建立一個run_exec_program.bat
"安裝的python.exe" "exec_program.py"
pause
以我為例 我的路徑如下
安裝的python.exe : D:\Anaconda\python.exe
exec_program.py : D:\folder\exec_program.py
這時候用排程執行就會看到排程抓到的sys.path
此時如果你跟我一樣排程的output和sypder/vscode的output不一樣時, 再往下做就好了 如果一樣...建議參考別的文章XD
5. 開啟cmd 命令提示字元
where python
如果有兩個路徑 請將兩個路徑都設定至命令提示字元中
設定完成應該就好囉!!
-----------------------------------------
有時在會走之前你就得跑
你不解決問題 就等問題解決你