Python 设置系统环境变量
我有一个flask服务器正在运行,如果没有它转储所有环境变量,我就无法让它作为服务运行 这是我的配置,如果没有数据库URL环境变量,它应该使用sqlite。它每次都能工作,除非我把它作为一个服务运行,而在这一点上它永远不会工作Python 设置系统环境变量,python,ubuntu,flask,service,Python,Ubuntu,Flask,Service,我有一个flask服务器正在运行,如果没有它转储所有环境变量,我就无法让它作为服务运行 这是我的配置,如果没有数据库URL环境变量,它应该使用sqlite。它每次都能工作,除非我把它作为一个服务运行,而在这一点上它永远不会工作 #SQL Alchemy Database config if os.environ.get('DATABASE_URL') is None: print('Using SQLITE') SQLALCHEMY_TRACK_MODIFICATIONS = F
#SQL Alchemy Database config
if os.environ.get('DATABASE_URL') is None:
print('Using SQLITE')
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_DATABASE_URI = ('sqlite:///' + os.path.join(basedir, 'app.db') + '?check_same_thread=False')
else:
print('Using MySQL')
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')
SQLALCHEMY_TRACK_MODIFICATIONS = False
#SQLALCHEMY_DATABASE_URI = ('mysql+pymysql://username:password@localhost/20200830MYSQL')
#export DATABASE_URL="mysql+pymysql://username:password@localhost/20200830MYSQL"
当我手动运行时,将其放置在/etc/environment中是有效的,但服务不起作用。这里是/etc/environment
DATABASE_URL="mysql+pymysql://username:password@localhost/20200830MYSQL"
在终端中执行以下命令对我的服务也不起作用
export DATABASE_URL="mysql+pymysql://username:password@localhost/20200830MYSQL"
我还将它放在/etc/systemd/systemd中的server.service文件中,但它仍然不能工作。以下是server.service文件:
[Unit]
Description=Server
After=multi-user.target
[Service]
DATABASE_URL="mysql+pymysql://username:password@localhost/20200830MYSQL"
WorkingDirectory=/home/jon/server
ExecStart=/home/jon/server/env/bin/gunicorn -k gevent -b 0.0.0.0:5080 app:app
Restart=always
[Install]
RequiredBy = multi-user.target
如前所述,在将变量放入server.service时,我需要更正一些语法。下面是我使用的语法
[Service]
Environment="SECRET=pGNqduRFkB4K9C2vijOmUDa2kPtUhArN"
你看了吗?谢谢你找到了。将变量放入服务中他们是如何修复的。