一. 發現問題
今天在cmd命令行運行一個py文件,本來在pycharm中運行好好的文件,在命令行卻報錯了,直接提示我:ImportError: No module named 'homeworks'
二. 什么原因
這是因為pycharm中,不光會導入環境變量中sys.path發現的模塊,還會導入當前工作目錄下的模塊。在pycharm中,當前工作目錄就是項目目錄,能順利調用相同項目中的模塊。但通過命令行啟動時,當前工作目錄有可能不是項目目錄,那么項目中的模塊就不會被找到,因此運行時會報錯:ImportError: No module named ...
如上圖所示,pycharm中,homeworks所在的目錄路徑D:\python_workshop\python6就是工作目錄,所以會導入當前工作目錄下的模塊
三. 如何解決
方法一:
新建環境變量PYTHONPATH,將模塊路徑放到環境變量中作為全局變量(推薦使用)
由於我的homeworks包所在目錄的路徑為:D:\python_workshop\python6
方法二:
在代碼中使用sys.path.append方法將homeworks所在目錄加入到搜素目錄中,切記,這段代碼必須放在from ... import ...前面
注意:
選擇上面兩種方法任意一種都可以,如果修改完代碼或者配置完環境變量后,命令行還是報錯,這時請退出cmd,重新進入,然后就可以順利的運行了
參考文章
https://blog.csdn.net/qq_35304570/article/details/78151545
https://blog.csdn.net/hello__Jerry/article/details/79586034