N00b问题:ValueError:尝试在非包中进行相对导入

2024-04-29 02:38:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望你们能帮忙

我正在写一个小代码,当按下一个按钮时,使yeelights闪烁随机颜色。我正在为一个项目导入一些东西,我的代码中出现了一个值错误

从我的代码:

#!/usr/bin/python

import time
import random
import RPi.GPIO as GPIO # Import Raspberry Pi GPIO library
from yeelight import Bulb
from yeelight import *
from .utils import _clamp

ChangeTableLight = Bulb("192.xxx.xx.xx") #Change Table Lightbulb
brightness = 100
count = _clamp(count, 1, 9)
#HSVTransition(hue, saturation, duration, brightness)

transitions = [
    HSVTransition(random.randint(0, 360), 100, duration=duration, brightness=brightness) for _ in range(count)
]

flow = Flow(
    count=5,
    action=Flow.actions.recover,
    transitions=transitions
)

def button_callback(channel):
    ChangeTableLight.start_flow(flow)

然后,我的代码中有(出现错误的地方-第8行)

count = _clamp(count, 1, 9)

当我运行脚本并出现以下错误时:

从.utils导入\u夹紧值错误:尝试在非包中进行相对导入

我试着搜索查看是否必须下载特定的实用程序模块来导入,我试着导入不同的模块,等等,但我什么也找不到

在另一个论坛上,有人建议我删除导入中UTIL之前的句点,但这给了我以下错误:

从实用工具导入\u clamp导入错误:无法导入名称\u clamp

Yeelight python代码来自here

有什么建议可以帮助我找到正确的答案吗


Tags: 代码fromimportgpiocount错误utilsrandom
1条回答
网友
1楼 · 发布于 2024-04-29 02:38:48

这更正确(1个错误而不是2个错误),因为您对已安装的模块进行绝对导入

from utility import _clamp

这是相对重要的

from .utils import _clamp

_clamp是受保护的变量,因为它有一个前导下划线访问修饰符。它不应该是进口的。我们不知道“_clamp”是来自“utility”还是“utils”

相关问题 更多 >