'20/07/23更新:汎用性を高めたコードに更新しました。
本記事では、例えば、アプリケーションの動作検証のため、一次的に環境変数を変更してテストしたい場合に有用です。具体的には、稼働中のPythonプロセスにおいて、環境変数Pathのパスを調べるだけでなく、削除や追加したり、Path以外の環境変数も指定して削除や追加したい場合の雛形コードです。
下図は、Anacondaプロンプトで本コードを実行した例です。動作過程で、Pathに設定されてるパスをprint出力で視覚的に確認してる様子です。
■本プログラム
import os, subprocess
def replace_path():
new_path_list=[]
for mypath in os.environ["Path"].split(';'):
print(mypath)
check_flag = 0
for target_str in target_list:
if target_str in mypath:
check_flag += 1
if check_flag == 0:
new_path_list.append(mypath)
for mypath in add_list:
new_path_list.append(mypath)
new_path_str = ';'.join(new_path_list)
os.environ["Path"] = new_path_str
for mypath in os.environ["Path"].split(';'):
print(mypath)
def del_path():
for myenv in del_list:
print(os.environ[myenv])
del os.environ[myenv]
print(os.environ.get(myenv))
def add_path():
for key, value in add_dict.items():
print(key, value)
os.environ[key] = value
if __name__ == '__main__':
target_list = ['anaconda3', 'Anaconda3']
add_list = [r'D:\00_backup\01_new\FreeCAD_0.19.21280-Win-Conda_vc14.x-x86_64\bin']
del_list = ['PYTHONPATH']
add_dict = {'PYTHONHOME':r'C:\Users\usr\Anaconda3\envs\py37'}
replace_path()
del_path()
add_path()
print("finished")
以上
<広告>
リンク