在全局范围内修改os.environ
我正在尝试为自己创建一个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())
希望这能帮到你。