首页 > 解决方案 > 在从配置脚本构建的可执行文件中嵌入环境变量

问题描述

我可以使用配置脚本在可执行文件中嵌入一些环境变量,以便在启动该可执行文件时自动设置一些特定的环境变量。

例如:当我们启动python3可执行文件时,PYTHONPATH会自动设置。或者在启动xyz.exe时,XYZ变量被设置。

标签: pythonlinuxubuntuenvironment-variablesconfigure

解决方案


简单回答是不。您通常不能直接修改二进制可执行文件,或根据正在运行的特定可执行文件设置环境变量。许多工具和程序都有全面的命令行选项,允许您指定它应该如何运行,因此请确保您仔细阅读文档以确保没有预定义的方式来执行您想要的操作。话虽如此,您可以通过一些变通方法复制此功能。

一种解决方案是明确export所有环境变量,以便在运行可执行文件时始终定义它们。这当然会导致设置很多环境变量,但不能保证它们会被使用。

如果您想最小化在任何给定时间设置的环境变量的数量,您还可以编写一个别名或函数,以便在运行可执行文件之前设置环境变量。小心使用不会与PATH. 此解决方案更接近您的问题,因为环境变量仅在执行之前和之后存在。

python3env() {
    export PYTHONPATH=/some/path
    python3
    unsert YOOT
}

alias python3env="export PYTHONPATH /some/path;python3;unset YOOT"

当然,这两个示例都会使您的 shell 启动配置变得混乱,并且可能会导致设置很多环境变量而无法保证它们会被使用。


推荐阅读