python 调用自己写的包下的模块 提示ModuleNotFoundError

import 自己写的两个模块 PPT 和easy_excel 模块,在主程序文件夹Process_Log_Compare.py同级目录下建立两个包GUI 和PPT 下面分别放自己写的程序PPT_Function, 和easy_excel,会产生如下报错,PPT 包里面加了__init__.py 文件呀
File "<ipython-input-5-6df0135e0b3e>", line 1, in <module>

import PPT.PPT_Function as PPT

ModuleNotFoundError: No module named 'PPT.PPT_Function'

import os,datetime,time
import pandas as pd
import numpy as np

import sys
sys.path.append(r"C:\Users\202912\Downloads\ESDX\Wuxi\Process-Log-Compare\ProcessLogComp") #把被引用模块所在的目录添加到 sys.path 中
import PPT.PPT_Function as PPT
import GUI.easy_excel as EE

image.png
image.png
image.png
image.png

阅读 3.7k
1 个回答

Python 的模块机制稍微有点复杂的,直接告诉你怎么改:

  1. sys.path.append 这行不需要,因为 sys.path 中会有当前目录(可以自己打印下,列表里会有 ''
  2. 刷新一下发现你又改了目录结构,import 后面需要跟模块,而你的 PPT_Function 只是模块里的一个方法,改为 from PPT import PPT_Function as PPT 就好了
  3. 将取决于你在 __init__.py 是否添加了东西。如果项目 PPT 不准备添加其他文件的话,改回 2,否则用 from PPT.Time_Tick_PPT PPT_Function sth as PPT 这种语法,根据 __init__.py 可以简化。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏