Python 运行本地脚本报找不到本地模块 ModuleNotFoundError 问题处理
一、问题
(myenv) ➜ test git:(feature-kaiwong) ✗ python test_kafka_producer.py
Traceback (most recent call last):
File "test_kafka_producer.py", line 8, in <module>
from common.kafka_cli import ProducerKafkaClient
ModuleNotFoundError: No module named 'common'
二、解决
因为pycharm默认使用解析器, 会导入该项目的所有包, 而cmd命令找不到该项目, 这个时候, 使用 sys.path.append("项目路径")
即可
import os
import sys
# 加载当前项目路径
sys.path.append(os.path.dirname(os.getcwd()))
from common.kafka_cli import ProducerKafkaClient
import json
config = {"bootstrap_servers": ["{}:{}".format('192.168.1.61', '9092')],
"api_version": (2, 0, 1),
}
client = ProducerKafkaClient(config)
data = json.dumps(
{"model_path": "http://192.168.1.17:30101/minio/modelfile/2022-09-27/1664252842224.zip", "image_name": "creat-image-test",
"image_version": "1.1.30", "model_version_id": "20220701"})
topic = 'goujian_image'
client.send(topic, value=bytes(data, encoding="utf8"), key=None)
示例:
# 当前文件的父目录的父目录的父目录
import os
import sys
# 当前路径: H:\testCase\test_v01\test_search\test_filmInfoList.py
# 添加路径: H:\testCase
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
# 当前文件的父目录的父目录
import os
import sys
# 当前路径: H:\testCase\test_v01\test_search\test_filmInfoList.py
# 添加路径: H:\testCase\test_v01
sys.path.append(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() # 初始化路径
相关文章:
解决python导入本地文件报错ModuleNotFoundError: No module named ‘conf‘
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)