Мне нужно создать новый файл переменных среды, к которому должен обращаться мой скрипт.
Это не так, как это работает. Вам нужно установить переменные окружения из файла ДО вызова вашего скрипта:
myenv.sh
export DB_USER="foo"
export DB_PWD="bar"
export DB_NAME="mydb"
# etc
myscript.py
import os
DB_USER = os.getenv("DB_USER")
DB_PWD = os.getenv("DB_PWD")
DB_NAME = os.getenv("DB_NAME")
# etc
Тогда
$ source /path/to/myenv.sh
$ python /path/to/myscript.py
Чаще всего вы захотите обернуть вышеупомянутые две строки в сценарий оболочки, чтобы облегчить жизнь вашему системному администратору.
РЕДАКТИРОВАТЬ: если вы хотите, чтобы эти env-переменные были установлены «автоматически», вы всегда можете получить их из .bashrc или другого подобного места - но тогда это вопрос системного администратора, а не вопрос программирования.
Теперь вопрос: вам действительно нужно , чтобы использовать здесь переменные окружения? Вы также можете использовать файл настроек Python - простой модуль Python, который просто определяет эти переменные, например:
mysettings.py
DB_USER = "foo"
DB_PWD = "bar"
# etc
и убедитесь, что путь к каталогу, содержащему этот скрипт, находится в вашей переменной $ PYTHONPATH. Тогда ваши сценарии должны только импортировать его (как они импортируют любой другой модуль), и все готово.
Обледенение: вы можете даже смешать оба решения, настроив модуль настроек на поиск переменных среды и предоставив значение по умолчанию, например:
mysettings.py
import os
DB_USER = os.getenv("DB_USER", "foo")
DB_PWD = os.getenv("DB_PWD", "bar")
# etc