python命令行執(zhí)行腳本找不到模塊ModuleNotFoundError問(wèn)題
python命令行執(zhí)行腳本找不到模塊ModuleNotFoundError
最近在使用python做分群數(shù)據(jù)處理,需要在命令行中執(zhí)行腳本處理業(yè)務(wù)。
業(yè)務(wù)流程就是:命令行腳本 Group.py 調(diào)用service模塊下的AppUseService 服務(wù),命令行實(shí)現(xiàn)才用的是 Google 的 Fire類庫(kù)。在pycharm中是可以正常運(yùn)行,在git bash shell中異常。
報(bào)錯(cuò)信息
執(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'
項(xiàng)目結(jié)構(gòu)
解決方案
在命令行的腳本Group.py最開(kāi)始的前幾行加上如下代碼,實(shí)現(xiàn)將腳本加入系統(tǒng)的路徑。
強(qiáng)調(diào):要在命令行腳本添加!并且一定要放到前面!這樣才能有效加載其他模塊?。。?/p>
import sys import os curPath = os.path.abspath(os.path.dirname(__file__)) rootPath = os.path.split(curPath)[0] sys.path.append(rootPath)
python命令行運(yùn)行時(shí),報(bào)錯(cuò)ModuleNotFoundError: No module named ‘XXX‘,找不到自定義模塊
python運(yùn)行報(bào)錯(cuò)
ModuleNotFoundError: ModuleNotFoundError: No module named 'step_defss’
報(bào)錯(cuò)原因
在python中,一個(gè).py文件就是一個(gè)模塊,導(dǎo)入模塊等于導(dǎo)入文件
是文件,就有文件路徑,所以這個(gè)情況,本質(zhì)上就是找不到文件
1、很多時(shí)候在pycharm運(yùn)行一切正常,但是到命令行中運(yùn)行py文件,就會(huì)報(bào)錯(cuò)
原因:
pycharm在每次運(yùn)行時(shí),都會(huì)檢索整個(gè)工程目錄,把目錄都添加到sys.path中,運(yùn)行的時(shí)候,就能夠找到對(duì)應(yīng)的模塊.py文件
2、命令行找不到模塊
原因:
命令行執(zhí)行時(shí),往往都是直接運(yùn)行某個(gè).py文件,缺少路徑檢索的步驟(需要我們自己代碼加上自動(dòng)檢索)
解決方法
在需要執(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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 下載python中Crypto庫(kù)報(bào)錯(cuò):ModuleNotFoundError: No module named ‘Crypto’的解決
- Python報(bào)錯(cuò):ModuleNotFoundError的解決辦法
- Python?ModuleNotFoundError:?No?module?named?‘xxx‘可能的解決方案大全
- PHP中通過(guò)exec調(diào)用python腳本報(bào)ModuleNotFoundError錯(cuò)誤問(wèn)題及解決方法
- Python打包文件執(zhí)行報(bào)錯(cuò):ModuleNotFoundError: No module named ‘pymssql‘的解決方法
- python命令行運(yùn)行報(bào)錯(cuò)ModuleNotFoundError:No module named‘XXX‘找不到自定義模塊
- 如何解決Python中ModuleNotFoundError錯(cuò)誤
- 解決Python中的ModuleNotFoundError:?No?module?named?'paddle'錯(cuò)誤
- Python解決ModuleNotFoundError: No module named 'PIL'的問(wèn)題
- Python報(bào)錯(cuò)ModuleNotFoundError: No module named ‘tensorboard‘的解決方法
- Python中ModuleNotFoundError: No module named ‘timm’的錯(cuò)誤解決
相關(guān)文章
python 不以科學(xué)計(jì)數(shù)法輸出的方法
今天小編就為大家分享一篇python 不以科學(xué)計(jì)數(shù)法輸出的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07python的scrapy框架之Pipeline文件的用法詳解
這篇文章主要介紹了python的scrapy框架之Pipeline文件的用法詳解,Pipeline是一個(gè)獨(dú)立的模塊,用于處理從Spider中提取的Item對(duì)象,實(shí)現(xiàn)對(duì)數(shù)據(jù)的進(jìn)一步處理、存儲(chǔ)和清洗等操作,下面將詳細(xì)介紹Scrapy框架中Pipeline的用法,需要的朋友可以參考下2023-10-10修改默認(rèn)的pip版本為對(duì)應(yīng)python2.7的方法
今天小編就為大家分享一篇修改默認(rèn)的pip版本為對(duì)應(yīng)python2.7的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11Python基本語(yǔ)法之運(yùn)算符功能與用法詳解
這篇文章主要介紹了Python基本語(yǔ)法之運(yùn)算符功能與用法,結(jié)合實(shí)例形式總結(jié)分析了Python常見(jiàn)運(yùn)算符相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-10-10Python實(shí)現(xiàn)的統(tǒng)計(jì)文章單詞次數(shù)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的統(tǒng)計(jì)文章單詞次數(shù)功能,結(jié)合實(shí)例形式分析了Python針對(duì)字符串序列的遍歷、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2019-07-07numpy庫(kù)ndarray多維數(shù)組的維度變換方法(reshape、resize、swapaxes、flatten)
這篇文章主要介紹了numpy庫(kù)ndarray多維數(shù)組的維度變換方法(reshape、resize、swapaxes、flatten),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Django表單外鍵選項(xiàng)初始化的問(wèn)題及解決方法
這篇文章主要介紹了Django表單外鍵選項(xiàng)初始化的問(wèn)題及解決方法,需本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,要的朋友可以參考下2021-04-04python數(shù)字圖像處理之圖像自動(dòng)閾值分割示例
這篇文章主要為大家介紹了python數(shù)字圖像處理之圖像自動(dòng)閾值分割示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06