首先分析原因:
IDE中可以工作 程序無問題 Python庫都在(IDE讀到,Terminal讀不到)
找IDE和Terminal讀取的不同:
打開Terminal(我的環境pycharm)
python
>>> import sys
>>> sys.path
['', 'D:\\Anaconda3\\python37.zip', 'D:\\Anaconda3\\DLLs', 'D:\\Anaconda3\\lib', 'D:\\Anaconda3', 'D:\\Anaconda3\\lib\\site-packages', 'D:\\Anaconda3\\lib\\site-packages\\win32', 'D:\\Anaconda3\\lib\\site-packages\\win32\\lib', 'D:\\Anaconda3\\lib\\site-packages\\Pyth
onwin']
"[ ]"裏的內容是我的Terminal環境下的模塊目錄。同理,找到IDE下的模塊導入目錄
# 新建一個Python程序
import sys
print(sys.path)
['D:\\code\\python_design', 'D:\\code\\stdlib-python', 'D:\\code', 'D:\\Anaconda3\\python37.zip', 'D:\\Anaconda3\\DLLs', 'D:\\Anaconda3\\lib', 'D:\\Anaconda3', 'D:\\Anaconda3\\lib\\site-packages', 'D:\\Anaconda3\\lib\\site-packages\\win32', 'D:\\Anaconda3\\lib\\site-pa ckages\\win32\\lib', 'D:\\Anaconda3\\lib\\site-packages\\Pythonwin']
對比二者之後確實有不同,IDE的模塊明顯更加的豐富,於是我用一個笨辦法:將後者中多出來的路徑全部載入到程序中。
import sys
sys.path.append(r"D:\\code\\python_design")
sys.path.append(r"D:\\Anaconda3\\lib\\site-packages")
sys.path.append(r"D:\\code\\stdlib-python")
sys.path.append(r"D:\\Anaconda3\\lib")
Terminal可以運行,後檢查發現其實只用到了第三條(stdlib-python),原因在於此庫是我離線導入,我的Terminal沒有讀到該位置的庫文件,我需要在程序中額外指定路徑至該庫。需要注意的是完成上述載入之後才能導入報錯的庫:
# 示例如下
import sys
sys.path.append(r"D:\\code\\stdlib-python")
import stdio
import stddraw
之後編譯環境就沒有什麼差別了!
參考:https://blog.csdn.net/CityzenOldwang/article/details/78701990