![](/img/trans.png)
[英]Python subprocess export environment variables (which use other environment variable)
[英]Use environment variable in python command
我有一个 Python 脚本,用于询问连接到 Raspberry Pi 的热电偶 HAT。 我现在正在尝试使用 .env 文件,以便可以跨多个系统使用相同的脚本。
我对在方法中使用环境变量的一段代码有疑问(抱歉,不确定这是否是正确的术语)。
这是我尝试添加环境变量之前的代码:
from dotenv import load_dotenv #.env files
from pathlib import Path #.env files
import os
env_path = Path(os.path.expanduser('PATH/HERE/.env'))
load_dotenv(dotenv_path=env_path)
for a in range(number_of_tcHATs):
hat_list.append([])
hat_list[a]=daqhats.mcc134(a)
for x in range(int(os.getenv('NUMBER_OF_THERMOCOUPLES'))):
hat_list[a].tc_type_write(x,daqhats.TcTypes.TYPE_N)
我正在使用的更新代码是(仅最后一行更改):
from dotenv import load_dotenv #.env files
from pathlib import Path #.env files
import os
env_path = Path(os.path.expanduser('PATH/HERE/.env'))
load_dotenv(dotenv_path=env_path)
for a in range(number_of_tcHATs):
hat_list.append([])
hat_list[a]=daqhats.mcc134(a)
for x in range(int(os.getenv('NUMBER_OF_THERMOCOUPLES'))):
print("hat_list[" + str(a) + "].tc_type_write(" + str(x) + ",daqhats.TcTypes."+ os.getenv('THERMOCOUPLE_TYPE') +")")
当我在屏幕上看到以下内容时,来自 .env 和连接的拉动起作用:
hat_list[0].tc_type_write(0,daqhats.TcTypes.TYPE_N)
hat_list[0].tc_type_write(1,daqhats.TcTypes.TYPE_N)
hat_list[0].tc_type_write(2,daqhats.TcTypes.TYPE_N)
hat_list[0].tc_type_write(3,daqhats.TcTypes.TYPE_N)
hat_list[1].tc_type_write(0,daqhats.TcTypes.TYPE_N)
hat_list[1].tc_type_write(1,daqhats.TcTypes.TYPE_N)
hat_list[1].tc_type_write(2,daqhats.TcTypes.TYPE_N)
hat_list[1].tc_type_write(3,daqhats.TcTypes.TYPE_N)
但它从不运行代码本身。 我怎样才能做到这一点?
再次阅读我的评论,根据入门,您缺少load_dotenv()
调用。 仅仅导入它是不够的,你需要调用它。 没有它, os.getenv()
只会从操作系统环境返回变量,因此不知道任何 .env 文件。
from dotenv import load_dotenv
load_dotenv() # take environment variables from .env.
# Code of your application, which uses environment variables (e.g. from `os.environ` or
# `os.getenv`) as if they came from the actual environment.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.