吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1790|回复: 21
收起左侧

[求助] 被python的import逼疯了

[复制链接]
subney 发表于 2021-11-24 16:10
image.png
这是我的目录

clock模块引入notify下的2个子类

from notify.sound_notify import SoundNotifier
from notify.toast_nofity import ToastNotifier


notify的子类【带前缀的notify】引入同级的父类
有两种引入方式

    from notify import Notifier
    from .notify import Notifier

写法1,在vscode运行notifier自己时,可以正常运行

if __name__ == '__main__':
    notifier=SoundNotifier()
    notifier.notify()
但是运行clock时,提示导入失败
NameError: name 'Notifier' is not defined
而写法2,运行clock时正常,而运行notifier自身,提示不能通过相对路径导入。
☹️☹️☹️☹️☹️☹️☹️☹️☹️
百度说,可以使用sys.path解决
import os,sys
sys.path.append(os.path.dirname(__file__))
from notify import Notifier
但是,运行clock依然提示导入失败
☹️☹️☹️☹️☹️☹️☹️☹️☹️
于是乎,我想了一个very ugly的写法

if __name__ == '__main__':
    from notify import Notifier
else:
    from .notify import Notifier
😭😭😭😭😭😭😭
请明白的大神讲解一下,正确的导入到底该怎么做?
image.png

免费评分

参与人数 1吾爱币 +1 收起 理由
xouou + 1 装上py那天, 看到各种包的嵌套, 直接卸载了, 因为我知道自己玩不转

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

带色的小马甲 发表于 2021-11-24 16:18
改个文件夹名不行吗?
lbbas 发表于 2021-11-24 16:19
as614001 发表于 2021-11-24 16:26
m1n9yu3 发表于 2021-11-24 16:31
是不是需要一个init.py
阳光肥肥 发表于 2021-11-24 16:47
在notify文件夹下添加__init__.py文件内容为
[Python] 纯文本查看 复制代码
from .notify import Notifier
from .sound_notify import SoundNotifier

当然这个init你是不能运行的
文件存放与全部内容如下图
说明.png
 楼主| subney 发表于 2021-11-24 16:48
带色的小马甲 发表于 2021-11-24 16:18
改个文件夹名不行吗?

竟然是这原因,汗🥲🥲🥲
thepoy 发表于 2021-11-24 17:27
你需要了解一下python的包管理。
虽然我也觉得python的包管理不算好用。
qwgs 发表于 2021-11-24 17:37
起名字不要起跟模块或者关键字一样的名字,会冲突的呀
hackxl 发表于 2021-11-24 17:39
文件夹改一下咯
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表