在公司项目开发过程中,代码都是放在服务器中进行运行的,使用本地的idea工具连接到服务器。
如python开发中,将使用pycharm工具连接服务器,如下图所示:
在项目中有线上正式环境、测试环境等,都是用不同环境变量的,因此这些不同的变量需要写到环境变量中,容易项目不同的环境切换,如下示例代码中,环境变量如图所示,
示例代码:
import os
env_name = os.getenv('name')
env_age = os.getenv('age')
print(env_name)
print(env_age)
运行结果:
在本地的电脑中连接远程服务器是直接可以运行上述代码的,但是直接到服务器中直接运行上述代码效果如下一些图所示:
接下来将操作如何在服务器中进行读取python环境变量:
1. 在Linux服务器上设置临时环境变量
这种写法只在当前终端或者命令行生效,一旦退出终端或命令行就会失效。
写法如下:
export name=dgw
当多个环境变量同时写时:
验证环境变量是否生效:
2. Linux系统中设置永久环境变量
(1)vim /etc/profile
(2)在文件底行写入:export age=26
(3):wq!保存退出
(4)source /etc/profile
注意:上述更改后,全局都是生效的。此时对已经打开的会话窗口不生效,需要重新打开新的会话窗口。
验证环境变量是否永久生效:
建议新建一个专门存放环境变量的文件,不要直接在/etc/profile中进行添加。/etc/profile需要在root用户下进行添加,对所有用户都生效的。如下所示文件中,此时仅对该会话窗口起作用,同一用户的其他窗口也是不起作用的。
程序启动时需要后台启动的,借助nohup命令来后台启动程序,这时更改python代码,来验证关闭窗口后,在其它窗口或用户下查看日志时环境变量是否还存在:
此时关闭该会话窗口,程序也是可以正常执行,环境变量也是正常的。
提高环境变量参数的复杂度:
注意:如果使用nohup时不能打印print日志的话,可以添加一个-u参数:
nohup python3 -u python_test.py > logs.log 2>&1 &
注意:实际开发过程中不会直接在linux的/etc/profile里直接写环境变量,可以自定义一个文件,写入环境变量,方式和在/etc/profie里一致,source一下就会永久生效,然后以 ‘.’ 开头给文件命名把文件隐藏,这样更加安全。