問題描述: 編譯器無法使用cmd命令來執行py文件,結果可能報ModuleNotFoundError的錯誤。 比如在cmd任務欄執行:python E:\myProgram\Python\spider\NetDealer\core\others\audi.py,項目NetDealer 包core 文 ...
問題描述:
編譯器無法使用cmd命令來執行py文件,結果可能報ModuleNotFoundError的錯誤。
比如在cmd任務欄執行:python E:\myProgram\Python\spider\NetDealer\core\others\audi.py,項目NetDealer 包core 文件名audi.py 的導入語句“from conf.settings import PY_SQL”無法導入其中的包core:
Traceback (most recent call last):
File "E:\myProgram\Python\spider\NetDealer\core\others\audi.py", line 8, in <module>
from conf.settings import PY_SQL
ModuleNotFoundError: No module named 'conf'
解決辦法:
原因分析:因為pycharm預設使用解析器,會導入該項目的所有包,而cmd命令找不到該項目,這個時候在py文件頭部加入 sys.path.append("項目路徑")
即可。
import os
from future.moves import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
然後完美解決。
另外,一些常用的路徑導入有如下這些:
os.path.dirname(__file__) # 獲取當前文件的絕對路徑 os.path.dirname("path") # 獲取當前文件的上級文件路徑 sys.path.append() # 路徑加入變數 os.path.abspath(".") # 當前執行文件的位置 os.path.abspath("../") # 當前執行文件的上級位置 os.getcwd() # 獲取當前執行文件的路徑 os.path.dirname(os.path) os.path # 當前模塊的路徑 sys.path[0] # 當前文件的絕對路徑 sys.path.append() # 初始化路徑