【问题标题】:How to use environment variables in blender如何在搅拌机中使用环境变量
【发布时间】:2018-02-11 23:53:49
【问题描述】:

我在 ~/.bashrc 文件的这两行中添加了一个环境变量

var="stuff.." 
export var

在普通终端中使用 python 解释器,这两行代码可以工作

import os
print(os.environ['var'])

但在搅拌机 python 控制台中,它会生成一个 KeyError,因此打印 os.environ 列表我可以看到没有以 'var' 作为键的项目

所以我认为这是unix系统环境设置的问题。 谁能帮助我并解释如何为其他进程导出环境变量?感谢和抱歉英语

【问题讨论】:

    标签: python unix environment-variables blender


    【解决方案1】:

    .bachrc 文件(和类似的.cshrc)在你的 shell 启动时被读取,类似地,当你启动一个 GUI 桌面时,shell rc 文件在它启动时被读取以及当时的变量然后是环境的一部分传递到任何 GUI 应用程序,运行时所做的更改不会在您启动新应用程序时被读取。您可以find ways of setting environment variables 用于不同的桌面。

    将环境变量传递给搅拌机的一种方法是从终端窗口启动它。打开终端会读取rc文件,也可以在启动blender之前手动设置环境变量。

    为 blender 设置环境变量的另一种方法是从脚本启动它,这可能是一个名为 myblender 的脚本,可以在您的 $PATH 中找到,或者也可以命名为 blender(如果可以找到)在真正的搅拌机之前。在此脚本中,您可以在启动搅拌机之前设置变量,并且任何更改都会在您运行它时生效。

    #!/bin/bash
    
    var="stuff.." 
    export var
    
    exec /usr/local/bin/blender "$@"
    

    【讨论】:

    • 谢谢。我对 shell 脚本不实用,所以我找到了一篇关于特殊变量的文章。我了解 $@ 的工作原理,但在这种情况下不了解。你能解释一下吗?
    • $@ 是脚本接收到的参数列表。在此示例中,它用于将任何参数传递给搅拌机。因此,您可以运行myblender -b file.blend -a,真正的搅拌机将获得相同的参数并执行您期望的操作。
    【解决方案2】:

    更新 ~/.bashrc 后,您要么必须在启动 blender 的终端中 source ~/.bashrc,要么注销并重新登录到您的系统,然后变量应该在环境中。

    如果您需要获取可能可用或可能不可用的环境变量,您也可以执行os.getenv('var', 'default value')之类的操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-22
      • 2020-08-24
      • 2016-02-20
      • 2018-08-06
      • 2014-12-04
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      相关资源
      最近更新 更多