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類(lèi)庫(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):要在命令行腳本添加!并且一定要放到前面!這樣才能有效加載其他模塊!??!
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基于類(lèi)路徑字符串獲取靜態(tài)屬性
這篇文章主要介紹了Python基于類(lèi)路徑字符串獲取靜態(tài)屬性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
工程師必須了解的LRU緩存淘汰算法以及python實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了工程師必須了解的LRU緩存淘汰算法以及python實(shí)現(xiàn)過(guò)程,幫助大家更好的學(xué)習(xí)算法數(shù)據(jù)結(jié)構(gòu),感興趣的朋友可以了解下2020-10-10
Python學(xué)習(xí)之隨機(jī)模塊random詳解
本文我們將學(xué)習(xí)一下Python中非常簡(jiǎn)單但也非常有用的模塊—random ,此模塊主要用于生成隨機(jī)數(shù),接下來(lái)就讓我們了解一下random模塊中最常見(jiàn)的幾種方法吧2022-03-03
python實(shí)現(xiàn)簡(jiǎn)易聊天對(duì)話(huà)框
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)易聊天對(duì)話(huà)框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
編寫(xiě)Python爬蟲(chóng)抓取暴走漫畫(huà)上gif圖片的實(shí)例分享
這篇文章主要介紹了編寫(xiě)Python爬蟲(chóng)抓取暴走漫畫(huà)上gif圖片的實(shí)例分享,示例代碼為Python3,利用到了urllib模塊、request模塊和BeautifulSoup模塊,需要的朋友可以參考下2016-04-04
NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié)
np.c_和?np.r_是NumPy庫(kù)中兩個(gè)非常有用的函數(shù),它們分別用于按列和按行拼接數(shù)組本文主要介紹了NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02

