在全局范围内修改os.environ

1 投票
1 回答
2958 浏览
提问于 2025-04-18 07:10

我正在尝试为自己创建一个Python包安装器。我还给用户提供了一个选项,让他们可以选择Python安装的目录来设置环境变量。

我遇到的问题是,每次重启程序时都必须重新设置这个环境变量。所以我做了一些研究,发现这个设置的作用范围仅限于当前进程

没有用户会希望每次安装多个包时都要重复设置这个环境变量(假设他们不知道怎么手动设置)。然后这个发现让我很失望(而且我也不太明白创建新环境的部分,以及在我的情况下该如何操作)。

总结:

如何在用户的系统上永久设置os.environ

1 个回答

1

看起来你的方法会把用户绑定到一个特定的解释器上,如果他们想尝试其他版本的Python,那可能会比较麻烦。也许为你的项目做一个友好的安装页面,里面有如何设置virtualenv的示例,会比较好?

无论如何,你可以尝试几种方法:

可以在用户的主目录下保存一个简单的配置文件,每次用户运行安装好的脚本(使用系统默认的解释器)时,读取这个文件,从中获取Python的目录路径,然后用更新后的环境来启动子进程

或者(对于支持shebang的系统),你也可以创建一个简单的运行器,像这样:

#!<here goes user defined python directory absolute path>
# -*- coding: utf-8 -*-

import sys
from main_script import main


if __name__ == "__main__":
    sys.exit(main())

希望这能帮到你。

撰写回答