在 Python 中设置环境变量
Setting up environmental variables in Python
长期爬行者,第一次来电。
我试图创建并使用 environ var 从 settings.py 文件发送 gmail (smtp),但显然我做错了,因为当我输入密码时它起作用了,但是当我使用 os.environ.get隐藏密码。
我想我没有正确调用环境变量,但我没有头绪!我收到身份验证错误
import os
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'xxxx----@gmail.com'
EMAIL_HOST_PASSWORD = 'Thisworkedfine'
但是当我使用它时,在我的系统属性中定义了 'EMAIL_USER' 和 'EMAIL_PASS' 之后它不起作用。
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get('EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASS')
地狱般的错误:
SMTPSenderRefused at /password-reset/
(530, b'5.5.1 Authentication Required. Learn more at\n5.5.1 https://support.google.com/mail/?p=WantAuthError c2sm2597974pjs.13 - gsmtp', 'webmaster@localhost')
哈尔普!
一种方法是在另一个 python 文件中设置变量并导入该文件。
创建文件说,myEnvVal.py
import os
# Set environment variables
def setVar():
os.environ['EMAIL_USER'] = 'xxxx----@gmail.com'
os.environ['EMAIL_PASSWORD'] = 'Thisworkedfine'
现在导入这个文件
import os
import myEnvVal
myEnvVal.setVar()
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get('EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASS')
我强烈推荐 python 使用 dotenv 模块,我个人认为这是处理环境变量最简单的方法。
将所有环境变量放入一个 .env 文件中,该文件只是键值对。
所以你的 .env 文件的内容看起来像这样:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'xxxx----@gmail.com'
EMAIL_HOST_PASSWORD = 'Thisworkedfine'
然后你在任何你想要使用你的 envars 的 python 文件中你可以这样做:
import os
from dotenv import load_dotenv
EMAIL_BACKEND = os.getenv('EMAIL_BACKEND')
然后确保将您的 .env 包含在您的 .gitignore 中,以便您的秘密始终保持在本地。
有关更多信息,请查看 dotenv github 存储库 here
在另一个文件中(类似于 envvar.py)创建两个变量。一个用于电子邮件,一个用于密码:
email = "me@something.com"
password = "somepassword"
然后在您的设置文件中:
import envvar
EMAIL_HOST_USER = envvar.email
EMAIL_HOST_PASSWORD = envvar.password
然后将 envvar 添加到你的 gitignore
长期爬行者,第一次来电。 我试图创建并使用 environ var 从 settings.py 文件发送 gmail (smtp),但显然我做错了,因为当我输入密码时它起作用了,但是当我使用 os.environ.get隐藏密码。
我想我没有正确调用环境变量,但我没有头绪!我收到身份验证错误
import os
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'xxxx----@gmail.com'
EMAIL_HOST_PASSWORD = 'Thisworkedfine'
但是当我使用它时,在我的系统属性中定义了 'EMAIL_USER' 和 'EMAIL_PASS' 之后它不起作用。
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get('EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASS')
地狱般的错误:
SMTPSenderRefused at /password-reset/
(530, b'5.5.1 Authentication Required. Learn more at\n5.5.1 https://support.google.com/mail/?p=WantAuthError c2sm2597974pjs.13 - gsmtp', 'webmaster@localhost')
哈尔普!
一种方法是在另一个 python 文件中设置变量并导入该文件。
创建文件说,myEnvVal.py
import os
# Set environment variables
def setVar():
os.environ['EMAIL_USER'] = 'xxxx----@gmail.com'
os.environ['EMAIL_PASSWORD'] = 'Thisworkedfine'
现在导入这个文件
import os
import myEnvVal
myEnvVal.setVar()
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get('EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASS')
我强烈推荐 python 使用 dotenv 模块,我个人认为这是处理环境变量最简单的方法。
将所有环境变量放入一个 .env 文件中,该文件只是键值对。 所以你的 .env 文件的内容看起来像这样:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'xxxx----@gmail.com'
EMAIL_HOST_PASSWORD = 'Thisworkedfine'
然后你在任何你想要使用你的 envars 的 python 文件中你可以这样做:
import os
from dotenv import load_dotenv
EMAIL_BACKEND = os.getenv('EMAIL_BACKEND')
然后确保将您的 .env 包含在您的 .gitignore 中,以便您的秘密始终保持在本地。
有关更多信息,请查看 dotenv github 存储库 here
在另一个文件中(类似于 envvar.py)创建两个变量。一个用于电子邮件,一个用于密码:
email = "me@something.com"
password = "somepassword"
然后在您的设置文件中:
import envvar
EMAIL_HOST_USER = envvar.email
EMAIL_HOST_PASSWORD = envvar.password
然后将 envvar 添加到你的 gitignore