问题描述
因此,我在youtube上看到了此消息,它应该能够检测到连接到wifi的新设备,尽管我了解这是如何工作的,但我仍然不知道如何解决此问题,因为有人能帮我吗?我认为我必须替换这两个变量,我认为这与它们是否是环境变量有关?我必须将它们放置在某个地方吗?
文件“ c:/Users/j/Desktop/Connection-Detection.py”,第6行,在 IP_NETWORK =配置('IP_NETWORK') 在调用中的文件“ C:\ Users \ j \ AppData \ Local \ Programs \ Python \ python38-32 \ lib \ site-packages \ decouple.py”,第199行 返回self.config(* args,** kwargs) 调用中的文件“ C:\ Users \ j \ AppData \ Local \ Programs \ Python \ python38-32 \ lib \ site-packages \ decouple.py”,第83行 返回self.get(* args,** kwargs) 在get中的文件“ C:\ Users \ j \ AppData \ Local \ Programs \ Python \ python38-32 \ lib \ site-packages \ decouple.py”,第68行 引发UndefinedValueError('{}找不到。声明为envvar或定义默认值。'。format(option)) decouple.UndefinedValueError:找不到IP_NETWORK。将其声明为envvar或定义一个默认值。 PS C:\ Users \ j \ Desktop \ python \ login>
这是我拥有的代码
import sys
import subprocess
import os
from decouple import config
IP_NETWORK = config('IP_NETWORK')
IP_DEVICE = config('IP_DEVICE')
proc = subprocess.Popen(['ping',IP_NETWORK],stdout=subprocess.PIPE)
while True:
line = proc.stdout.readline
if not line:
break
connected_ip = line.decode('utf-8').split()[3]
if connected_ip == IP_DEVICE:
subprocess.Popen(['say','Someone connected to network'])
解决方法
您需要在与 Detection.py
文件相同的目录中定义一个环境变量。
步骤
- 安装 python-decouple -
pip install python-decouple
。 - 创建一个名为
.env
的文件 - 打开
.env
文件并将以下内容粘贴到其中。
IP_NETWORK=YOUR_IP_NETWORK
IP_DEVICE=YOUR_IP_DEVICE
将 YOUR_IP_NETWORK
和 YOUR_IP_DEVICE
替换为您的 IP_NETWORK and IP_DEVICE