【E-20】ModuleNotFoundError: No module named


一、問題源頭

Linux 使用自己python文件包時,出現ModuleNotFoundError: No module named。

二、原因

IDE環境下,例如pycharm下,會自動搜索代碼所在目錄,尋找相關的包,而Linux環境下,直接運行.py文件,只會搜索默認的路徑此時需要把代碼所在目錄添加到sys.path當中

在ide中執行python程序,都已經在默認的項目路徑中,所以直接執行是沒有問題的。但是在cmd中執行程序,所在路徑是python的搜索路徑,如果涉及到import引用就會報類似ImportError: No module named xxx這樣的錯誤,解決方法:

三、解決方案

方案一:在報錯的模塊中添加:

import sys

import os

curPath = os.path.abspath(os.path.dirname(__file__))

rootPath = os.path.split(curPath)[0]

sys.path.append(rootPath)

方案二:

  1. sys.path是python的搜索模塊的路徑集,是一個list;可以在python環境下使用sys.path.append(path)添加相關的路徑,但在退出python環境后添加的路徑就會自動消失了。
  2. ImportError: No module named 'xxx':模塊不在搜索路徑里,從而導致路徑搜索失敗。

import sys

sys.path.append("/usr/flink/alert/")

sys.path.append("/usr/flink/alert/example/")

from example import helloworld_pb2, helloworld_pb2_grpc

本文采用

本文采用方案一


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM