因为有时需要在Terminal中调试代码,而且调试前需要配置环境变量,虽然操作不麻烦,但用起来总不习惯.特别是项目比较多时,需要频繁进到设置里面去改.以前设置环境变量的操作如下图:
Settings-Tools-Terminal-Project Settings-Enviroment variables
添加环境变量
比如我们有一个文件env.list 里面的内容如下:
IN_HOST='192.168.0.6' # 数据库主机IP
IN_PORT=8888 # 数据库端口
IN_USER='matrix273' # 数据库用户名
IN_PASSWD='matrix273' # 数据库密码
IN_DATABASE='hello' # 数据库名称
IN_SCHEMA='python' # 数据库模式
IN_TABLE='fine' # 数据库表名称
这个文件为了方便理解,每一行都添加了注释.问题就在这里,我们不能直接全选所有行,然后一次性粘贴到添加环境变量里面,因为那样设置的环境变量将包含后面的注释内容,而不是我们需要的 #号前的内容.所以只能一行一行的手动选择复制注释前的内容到上一步.当然了如果你的文件中没有注释,就不存在这个问题.
故而今天学习了一会写出来一个PowerShell脚本,用来设置环境变量.内容如下:
# PowerShell脚本
# 脚本作用读取文本,设置环境变量
#判断是否存在tmpenv.ps1文件,存在则删除
if(Test-Path tmpenv.ps1){rm tmpenv.ps1}
#遍历存放环境变量的文本文件 evn.txt,在行首添加 "$env:"后追加到 tmpenv.ps1文件中
foreach($line in Get-Content .\env.txt -Encoding utf8 ) {
$line -replace '^','$env:' >> tmpenv.ps1
}
. tmpenv.ps1 #执行设置环境变量
这个适用于PyCharm配置的Terminal是 PowerShell的情形,调试前只需要在Terminal中手动执行以下命令:
. .\setenv.ps1
注意前两个点之间有空格,执行后通PowerShell命令
$env:IN_HOST
可以看到变量生效了,在python中用以下命令也可以获取到
import os
os.getenv('IN_HOST')
效果如图:
完结散花