Python Django can';即使我从Pycharm导出运行虚拟服务器的bash变量,也无法识别它

Python Django can';即使我从Pycharm导出运行虚拟服务器的bash变量,也无法识别它,python,django,bash,environment-variables,Python,Django,Bash,Environment Variables,我在bash中导出了一个环境变量。项目位于localhost中。操作系统是Debian 9 Stretch 运行时,在命令行中: python -c "import os; print(os.environ.get('EMAIL_PASSWORD'))" 我得到变量值 但是,在Django内部,调用os.environ.get('EMAIL\u PASSWORD')返回None 在设置中: EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASSWORD

我在bash中导出了一个环境变量。项目位于localhost中。操作系统是Debian 9 Stretch

运行时,在命令行中:

python -c "import os; print(os.environ.get('EMAIL_PASSWORD'))"
我得到变量值

但是,在Django内部,调用
os.environ.get('EMAIL\u PASSWORD')
返回
None

在设置中:

EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASSWORD')
已经找到n个类似的问题,但一般来说,问题是变量没有导出到
环境

我错过了什么

更新:
Django虚拟服务器直接从Pycharm调用

导出$EMAIL\u密码
将无法工作。首先删除
$
并在shell中定义变量值,而不仅仅是变量名。它应该是这样的:
export EMAIL\u PASSWORD='value'

编辑


调用var时,不要将
''
放在var周围。Django会认为它是一个字符串,而不是一个变量。

export$EMAIL\u PASSWORD
将不起作用。首先删除
$
并在shell中定义变量值,而不仅仅是变量名。它应该是这样的:
export EMAIL\u PASSWORD='value'

编辑


调用var时,不要将
''
放在var周围。Django会认为它是一个字符串,而不是一个变量。

环境变量设置在哪里?我用
EMAIL\u PASSWORD=PASSWORD
设置它,然后用
export$EMAIL\u PASSWORD
导出
printenv
返回它。您是将它们放在.bashrc文件还是.env文件中?您如何启动Django?@Exprator,现在我只在当前环境中导出,而不是在
.bashrc
中,但是
printenv
显示它。使用
python manage.py runserver 8000启动Django
在哪里设置环境变量?我使用
EMAIL\u PASSWORD=PASSWORD
设置它,然后使用
export$EMAIL\u PASSWORD
导出
printenv
返回它。您是将它们放在.bashrc文件还是.env文件中?您如何启动Django?@Exprator,现在我只在当前环境中导出,而不是在
.bashrc
中,但是
printenv
显示它。用
python manage.py runserver 8000启动Django
我用
export EMAIL\u PASSWORD='value'
导出。评论写错了。抱歉。如果EMAIL_变量是一个变量,请不要将“”放在其周围,而是将其用作变量,因此没有“”,Django会将“”中的内容视为字符串,并且您无法导出字符串(您可能知道),请参见edit@Caco!这可能就是解决办法!我正在使用
导出电子邮件\u PASSWORD='value'
进行导出。评论写错了。抱歉。如果EMAIL_变量是一个变量,请不要将“”放在其周围,而是将其用作变量,因此没有“”,Django会将“”中的内容视为字符串,并且您无法导出字符串(您可能知道),请参见edit@Caco!这可能就是解决办法!