栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Pycharm:为运行manage.py任务设置环境变量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pycharm:为运行manage.py任务设置环境变量

由于Pycharm不是从终端启动的,因此不会加载你的环境。简而言之,任何GUI程序都不会继承SHELL变量。

但是,有几个基本解决方案。正如@ user3228589发布的那样,你可以在PyCharm中将其设置为变量。这有几个优点和缺点。我个人不喜欢这种方法,因为它不是一种

single source
。为了解决这个问题,我在
settings.py
文件顶部使用了一个小函数,该函数在本地
.env
文件中查找变量。我把所有的“私人”东西都放在那里。我也可以在我的virtualenv中引用它。

这是它的样子。

-settings.py

def get_env_variable(var_name, default=False):    """    Get the environment variable or return exception    :param var_name: Environment Variable to lookup    """    try:        return os.environ[var_name]    except KeyError:        import StringIO        import ConfigParser        env_file = os.environ.get('PROJECT_ENV_FILE', SITE_ROOT + "/.env")        try: config = StringIO.StringIO() config.write("[DATA]n") config.write(open(env_file).read()) config.seek(0, os.SEEK_SET) cp = ConfigParser.ConfigParser() cp.readfp(config) value = dict(cp.items('DATA'))[var_name.lower()] if value.startswith('"') and value.endswith('"'):     value = value[1:-1] elif value.startswith("'") and value.endswith("'"):     value = value[1:-1] os.environ.setdefault(var_name, value) return value        except (KeyError, IOError): if default is not False:     return default from django.core.exceptions import ImproperlyConfigured error_msg = "Either set the env variable '{var}' or place it in your "   "{env_file} file as '{var} = VALUE'" raise ImproperlyConfigured(error_msg.format(var=var_name, env_file=env_file))# Make this unique, and don't share it with anybody.SECRET_KEY = get_env_variable('SECRET_KEY')

然后,env文件如下所示:

#!/bin/sh## This should normally be placed in the ${SITE_ROOT}/.env## DEPLOYMENT DO NOT MODIFY THESE..SECRET_KEY='XXXSECRETKEY'

最后,你的virtualenv / bin / postactivate可以获取此文件。如果愿意,可以进一步进行操作并按此处所述导出变量,但是由于设置文件直接调用.env,因此实际上没有必要。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393880.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号