使用python脚本为linux环境添加$PATH
需要将此路径-->/home/ubuntu/folderA添加到linux ubuntu中的my path环境变量中 更新使用python脚本为linux环境添加$PATH,python,linux,Python,Linux,需要将此路径-->/home/ubuntu/folderA添加到linux ubuntu中的my path环境变量中 更新 print(os.environ["PATH"]) path = "/home/ubuntu/folderA" os.environ["PATH"] += os.pathsep + path print(os.environ["PATH"]) #Can see the newly added path here when i print 但是,我仍然无法访问路径 当我
print(os.environ["PATH"])
path = "/home/ubuntu/folderA"
os.environ["PATH"] += os.pathsep + path
print(os.environ["PATH"])
#Can see the newly added path here when i print
但是,我仍然无法访问路径
当我执行printenv
时,仍然看不到路径
已尝试os.getenv(“PATH”)
查看路径是否已更新,但仍然是相同的
如果使用以下命令手动执行,然后使用printenv
,则路径就在那里
export PATH=$PATH:/home/ubuntu/folderA
我需要的是使用python脚本中的第一个方法更新路径,然后继续使用我的其余方法
希望有人能看看。多谢各位
最后一个更新:结果是在运行python脚本时追加了路径。只是在脚本完成后,路径将不会持久。因此,当我执行
printenv
时,路径不会显示。您可以使用os.environ[“path”]
检查此项以获得想法。您可以使用
os.environ[“PATH”]
检查此项以获得想法。
系统路径
属于类型列表
。因此,您应该使用内置的append()
方法添加字符串
import sys
sys.path.append("/home/ubuntu/folderA")
要更新当前用户的path变量,请使用os.environ['path']
需要注意的一点是,path变量是一个字符串对象,在循环中更新它将消耗内存。如果要从列表中更新,请使用以下方法
# os.pathsep is the character that separates different paths in the path variable
os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)
系统路径
属于类型列表
。因此,您应该使用内置的append()
方法添加字符串
import sys
sys.path.append("/home/ubuntu/folderA")
要更新当前用户的path变量,请使用os.environ['path']
需要注意的一点是,path变量是一个字符串对象,在循环中更新它将消耗内存。如果要从列表中更新,请使用以下方法
# os.pathsep is the character that separates different paths in the path variable
os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)
这是因为在类Unix系统上,每个进程的环境都是唯一的
当您运行脚本时,操作系统会将当前环境变量复制到新环境中。在新环境中,脚本修改PATH变量。脚本退出后,该环境将被破坏
试着运行这个来看看我在说什么:
path = "/home/ubuntu/folderA"
os.environ["PATH"] += os.pathsep + path
print(os.environ["PATH"])
os.system('printenv')
您应该看到修改后的PATH变量
如果要为进一步的进程修改PATH变量,必须执行以下操作之一
从脚本中启动bashshell。使用os.system('bash')
这将启动一个子shell进程,该进程将从脚本中继承PATH变量
首选的方法是将脚本更改为如下内容
path = "/home/ubuntu/folderA"
print('export PATH=' + os.environ["PATH"] += os.pathsep + path)
eval $(python path.py)
然后像这样执行脚本
path = "/home/ubuntu/folderA"
print('export PATH=' + os.environ["PATH"] += os.pathsep + path)
eval $(python path.py)
这将在启动脚本的shell中获得修改后的路径。请注意,在Windows类型的系统上,情况完全不同
这是因为在类Unix系统上,每个进程的环境都是唯一的
当您运行脚本时,操作系统会将当前环境变量复制到新环境中。在新环境中,脚本修改PATH变量。脚本退出后,该环境将被破坏
试着运行这个来看看我在说什么:
path = "/home/ubuntu/folderA"
os.environ["PATH"] += os.pathsep + path
print(os.environ["PATH"])
os.system('printenv')
您应该看到修改后的PATH变量
如果要为进一步的进程修改PATH变量,必须执行以下操作之一
从脚本中启动bashshell。使用os.system('bash')
这将启动一个子shell进程,该进程将从脚本中继承PATH变量
首选的方法是将脚本更改为如下内容
path = "/home/ubuntu/folderA"
print('export PATH=' + os.environ["PATH"] += os.pathsep + path)
eval $(python path.py)
然后像这样执行脚本
path = "/home/ubuntu/folderA"
print('export PATH=' + os.environ["PATH"] += os.pathsep + path)
eval $(python path.py)
这将在启动脚本的shell中获得修改后的路径。请注意,在Windows类型的系统上,情况完全不同
sys.path
不是path
环境变量,环境变量是进程的本地变量。您所说的“我的脚本仍然无法找到新添加的路径”是什么意思?请提供一个。您是否使用一个python脚本来添加路径,使用另一个脚本来访问添加的路径?还请详细说明您试图完成的任务@ssokhey我尝试只使用一个脚本添加路径,使用同一个脚本访问添加的路径。sys.path
不是path
环境变量,环境变量是进程的本地变量。你说的“我的脚本仍然找不到新添加的路径”是什么意思?请提供一个。您是否使用一个python脚本来添加路径,使用另一个脚本来访问添加的路径?还请详细说明您试图完成的任务@ssokhey我试图只使用一个脚本来添加路径,并使用相同的脚本来访问添加的路径。我不是向下投票人,但OP询问的是环境变量$path
,而不是sys.path
。我不是向下投票人,但OP询问的是环境变量$path
,而不是sys.path
。