I used Ubuntu16.04
When I use sudo python3
into the interactive shell
import os os.environ['SECRET_KEY']
it can’t read the SECRET_KEY
I set it in the /etc/profile.d/project.sh
project.sh
export SECRET_KEY=the_key
After reloading it but in vain.
I also set in the ~/.profile
But still got the error.
How do I fixed it?
[EDIT]
It can work in sudo -E python3
But the futher problem is that when I run sudo -E supervisor reread/reload
I have the command defined in the [program:site] section to launch the gunicorn.conf.py
/etc/supervisor/conf.d/weather.conf
[program:site] directory=/home/nhcc/campus-weather-station/weather_station command=/home/nhcc/venv/weather_station/bin/gunicorn -c /home/nhcc/campus-weather-station/weather_station/gunicorn.conf.py -p gunicorn.pod weather_station.wsgi
gunicorn.conf.py
# -*- coding: utf-8 -*- # /usr/bin/python3 import os bind = "{}:8080".format(os.environ['DJANGO_WEATHER_STATION_HOST']) worders = (os.sysconf('SC_NPROCESSORS_ONLN') * 2) + 1 loglevel = 'error' command = "WTR_VENV/gunicorn" pythonpath = "$PROJECT/weather_station"
it will showed up the error .
Advertisement
Answer
When you run it with sudo
, you’re actually going to run the program as root
. So any environment setup for your current user isn’t going to apply unfortunately without special care.
Fortunately sudo -E
will do the trick. See this SO question for more details.