Python模块导入出现ModuleNotFoundError: No module named ‘***’ Traceback (most recent call last):
File “/usr/flink/alert/server/greeter_server.py”, line 8, in from
example import helloworld_pb2, helloworld_pb2_grpc
ModuleNotFoundError: No module named ‘example’
1、Python中,每个py文件被称之为模块,每个具有_init_.py文件的目录被称为包。只要模块或者包所在的目录在sys.path
中,就可以使用import模块或者import包来使用。如果要使用的模块(py文件)和当前模块在同一目录,只要import相应的文件名
即可,比如在a.py中使用b.py:import b即可;但是如果要如果要import一个不同目录的文件,首先需要使用一个不同目录的文件,首先需要使用sys.path.append方法方法
将将b.py所在目录加入到搜索目录中,然后进行所在目录加入到搜索目录中,然后进行import即可,例如:即可,例如:import sys sys.path.append(‘c:\xxx\b.py’)
2、sys.path是python的搜索模块的路径集,是一个list;可以在python环境下使用sys.path.append(path)添加相关的路径,但
在退出python环境后添加的路径就会自动消失了。
3、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
同样的,anaconda虚拟环境下的python3模块运行无rospy,可以尝试用这种方式解决
#! /usr/bin/python3
import sys
sys.path.remove('/opt/ros/melodic/lib/python2.7/dist-packages')
import torch, os, cv2
from model.model import parsingNet
from utils.common import merge_config
from utils.dist_utils import dist_print
import torch
import numpy as np
import torchvision.transforms as transforms
from data.constant import culane_row_anchor
import sys
sys.path.append("/opt/ros/melodic/lib/python2.7/dist-packages")
import rospy