【发布时间】:2020-12-15 14:40:22
【问题描述】:
我可以使用配置脚本在可执行文件中嵌入一些环境变量,以便在启动该可执行文件时自动设置一些特定的环境变量。
例如:
当我们启动python3 可执行文件时,PYTHONPATH 会自动设置。或者在启动 xyz.exe 时,XYZ 变量被设置。
【问题讨论】:
标签: python linux ubuntu environment-variables configure
我可以使用配置脚本在可执行文件中嵌入一些环境变量,以便在启动该可执行文件时自动设置一些特定的环境变量。
例如:
当我们启动python3 可执行文件时,PYTHONPATH 会自动设置。或者在启动 xyz.exe 时,XYZ 变量被设置。
【问题讨论】:
标签: python linux ubuntu environment-variables configure
简单的答案是否定的。您通常不能直接修改二进制可执行文件,或根据正在运行的特定可执行文件设置环境变量。许多工具和程序都有全面的命令行选项,允许您指定它应该如何运行,因此请确保您仔细阅读文档以确保没有预定义的方式来执行您想要的操作。话虽如此,您可以通过一些变通方法复制此功能。
一种解决方案是显式地export 所有环境变量,以便在您运行可执行文件时始终定义它们。这当然会导致设置很多环境变量,但不能保证它们会被使用。
如果您想最小化在任何给定时间设置的环境变量的数量,您还可以编写一个别名或函数,以便在运行可执行文件之前设置环境变量。请注意使用不会与PATH 上现有的可执行文件冲突的名称。此解决方案更接近您的问题,因为环境变量仅在执行之前和之后存在。
python3env() {
export PYTHONPATH=/some/path
python3
unsert YOOT
}
alias python3env="export PYTHONPATH /some/path;python3;unset YOOT"
当然,这两个示例都会使您的 shell 启动配置变得混乱,并且可能会导致设置很多环境变量而无法保证它们会被使用。
【讨论】:
LDGLAGS 配置脚本。