我正在按照文档在 Windows 10 命令提示符中执行一些命令:
export OPENAI_LOG_FORMAT='stdout,log,csv,tensorboard'
export OPENAI_LOGDIR=path/to/tensorboard/data
tensorboard --logdir=$OPENAI_LOGDIR
我发现这export
是 Unix 命令,而 Windows 中的等效命令是setx
。我执行了前两个命令,当我尝试第三个命令时,$OPENAI_LOGDIR
没有正确检测到。有人能帮我找到 Windows 中与这些命令等效的命令吗?
答案1
setx
是不是export
Windows 中的Linux 对应部分。export
只是使变量可用暂时地到当前shell及其子进程而setx
存储变量永久到未来的每个用户或系统进程。
你没有展示你使用的所有实际命令,所以根据评论,我猜你运行了这些
setx OPENAI_LOG_FORMAT 'stdout,log,csv,tensorboard'
setx OPENAI_LOGDIR path/to/tensorboard/data
tensorboard --logdir=$OPENAI_LOGDIR
这绝对是错误的!
首先setx
应该是仅运行一次,因此如果你想为当前会话设置环境,那么你必须使用set
而不是setx
。如果你确实想永久设置变量,那么你仍然需要重启 shell所以更改适用,并且不再运行命令
除了单引号不是 cmd 中的引用字符因此,您需要删除''
并使用,或者如果您的程序本身确实删除引号,stdout,log,csv,tensorboard
则使用双引号"stdout,log,csv,tensorboard"
最后,cmd 中的变量是用%%
而不是$
像 bash 那样访问的,因此必须将最后一行更改为tensorboard --logdir=%OPENAI_LOGDIR%
。最终结果如下
set "OPENAI_LOG_FORMAT=stdout,log,csv,tensorboard"
set "OPENAI_LOGDIR=path/to/tensorboard/data"
tensorboard --logdir=%OPENAI_LOGDIR%
除非你在问题中提供足够的信息,否则这仍然是一个猜测
答案2
你可以尝试这个:
在 PowerShell 中
$env:OPENAI_LOGDIR="path/to/tensorboard/data"
在cmd中
set OPENAI_LOGDIR=path/to/tensorboard/data
答案3
打开你的电脑
- 搜索此电脑图标
- 单击右键然后选择属性。
- 点击高级系统设置(左侧部分)
- 单击环境变量(右下)
- 添加新的系统变量并保存更改
现在它将适用于所有用户。要测试,请打开 cmd 并输入echo %your_variable%
有关详细信息,请参阅什么是 PATH 和其他环境变量?如何设置或使用它们?
答案4
如果您想将其包含在程序中,下面是在 Python 中完成的操作:
import os
os.environ["OPENAI_LOG_FORMAT"] = 'stdout,log,csv,tensorboard'
os.environ["OPENAI_LOGDIR"] = path/to/tensorboard/data