python命令行執(zhí)行腳本找不到模塊ModuleNotFoundError問題
python命令行執(zhí)行腳本找不到模塊ModuleNotFoundError
最近在使用python做分群數(shù)據(jù)處理,需要在命令行中執(zhí)行腳本處理業(yè)務(wù)。
業(yè)務(wù)流程就是:命令行腳本 Group.py 調(diào)用service模塊下的AppUseService 服務(wù),命令行實現(xiàn)才用的是 Google 的 Fire類庫。在pycharm中是可以正常運行,在git bash shell中異常。
報錯信息
執(zhí)行命令:
python command/Group.py continueWeek
提示找不到我代碼所定義的模塊:
$ python command/Group.py continueWeek
Traceback (most recent call last):
File "command/Group.py", line 9, in <module>
from service.AppUseService import AppUseService
ModuleNotFoundError: No module named 'service'項目結(jié)構(gòu)

解決方案
在命令行的腳本Group.py最開始的前幾行加上如下代碼,實現(xiàn)將腳本加入系統(tǒng)的路徑。
強(qiáng)調(diào):要在命令行腳本添加!并且一定要放到前面!這樣才能有效加載其他模塊!??!
import sys import os curPath = os.path.abspath(os.path.dirname(__file__)) rootPath = os.path.split(curPath)[0] sys.path.append(rootPath)
python命令行運行時,報錯ModuleNotFoundError: No module named ‘XXX‘,找不到自定義模塊
python運行報錯
ModuleNotFoundError: ModuleNotFoundError: No module named 'step_defss’

報錯原因
在python中,一個.py文件就是一個模塊,導(dǎo)入模塊等于導(dǎo)入文件
是文件,就有文件路徑,所以這個情況,本質(zhì)上就是找不到文件
1、很多時候在pycharm運行一切正常,但是到命令行中運行py文件,就會報錯
原因:
pycharm在每次運行時,都會檢索整個工程目錄,把目錄都添加到sys.path中,運行的時候,就能夠找到對應(yīng)的模塊.py文件
2、命令行找不到模塊
原因:
命令行執(zhí)行時,往往都是直接運行某個.py文件,缺少路徑檢索的步驟(需要我們自己代碼加上自動檢索)
解決方法
在需要執(zhí)行的.py文件中,加上以下這段代碼,就是在import模塊文件前,先將模塊路徑,添加到sys.path,就能夠正常引入模塊
import os import sys BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) from step_defss.scenario_steps import * #接后續(xù)代碼
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 下載python中Crypto庫報錯:ModuleNotFoundError: No module named ‘Crypto’的解決
- Python報錯:ModuleNotFoundError的解決辦法
- Python?ModuleNotFoundError:?No?module?named?‘xxx‘可能的解決方案大全
- PHP中通過exec調(diào)用python腳本報ModuleNotFoundError錯誤問題及解決方法
- Python打包文件執(zhí)行報錯:ModuleNotFoundError: No module named ‘pymssql‘的解決方法
- python命令行運行報錯ModuleNotFoundError:No module named‘XXX‘找不到自定義模塊
- 如何解決Python中ModuleNotFoundError錯誤
- 解決Python中的ModuleNotFoundError:?No?module?named?'paddle'錯誤
- Python解決ModuleNotFoundError: No module named 'PIL'的問題
- Python報錯ModuleNotFoundError: No module named ‘tensorboard‘的解決方法
- Python中ModuleNotFoundError: No module named ‘timm’的錯誤解決
相關(guān)文章
工程師必須了解的LRU緩存淘汰算法以及python實現(xiàn)過程
這篇文章主要介紹了工程師必須了解的LRU緩存淘汰算法以及python實現(xiàn)過程,幫助大家更好的學(xué)習(xí)算法數(shù)據(jù)結(jié)構(gòu),感興趣的朋友可以了解下2020-10-10
Python學(xué)習(xí)之隨機(jī)模塊random詳解
本文我們將學(xué)習(xí)一下Python中非常簡單但也非常有用的模塊—random ,此模塊主要用于生成隨機(jī)數(shù),接下來就讓我們了解一下random模塊中最常見的幾種方法吧2022-03-03
NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié)
np.c_和?np.r_是NumPy庫中兩個非常有用的函數(shù),它們分別用于按列和按行拼接數(shù)組本文主要介紹了NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié),具有一定的參考價值,感興趣的可以了解一下2024-02-02

