Python Django can';即使我从Pycharm导出运行虚拟服务器的bash变量,也无法识别它
我在bash中导出了一个环境变量。项目位于localhost中。操作系统是Debian 9 Stretch 运行时,在命令行中: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
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!这可能就是解决办法!