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

2023-11-23

我已经移动了我的SECRET_KEY我的设置文件中的值,当我加载 virtualenv 时它会被设置。我可以确认该值存在于python manage.py shell.

当我运行 Django 控制台时,SECRET_KEY失踪了,这是应该的。因此,在首选项中,我转到 Console>Django Console 并加载SECRET_KEY和适当的值。我返回 Django 控制台,然后SECRET_KEY有没有。

正如预期的那样,我还无法运行 manage.py 任务,因为它尚未找到SECRET_KEY。所以我进入“运行”>“编辑配置”来添加SECRET_KEY进入 Django 服务器和 Django 测试,以及项目服务器。重新启动 Pycharm,确认密钥。

当我运行manage.py任务时,例如runserver,我仍然得到KeyError: 'SECRET_KEY'.

我该把这把钥匙放在哪里?


由于 Pycharm 不是从终端启动,因此不会加载您的环境。简而言之,任何GUI程序都不会继承SHELL变量。看this由于某些原因(假设是 Mac)。

然而,这个问题有几个基本的解决方案。作为@用户3228589发布后,您可以将其设置为 PyCharm 中的变量。这有几个优点和缺点。我个人不喜欢这种方法,因为它不是single source。为了解决这个问题,我在 settings.py 文件顶部使用了一个小函数,该函数在本地变量中查找变量.env文件。我把我所有的“私人”东西都放在那里。我也可以在我的 virtualenv 中引用它。

这是它的样子。

-- 设置.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 可以获取这个文件。您可以进一步按照描述导出变量here如果您愿意,但由于设置文件直接调用 .env,因此实际上没有必要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pycharm:设置运行manage.py任务的环境变量 的相关文章

  • 用于基于类的通用视图的 Django mixin

    我正在尝试实现 Staff member required mixins 以下是我发现的两种方法 First class StaffRequiredMixin object method decorator login required d
  • 键入的完整命令行

    我想获得输入时的完整命令行 This join sys argv 在这里不起作用 删除双引号 另外 我不想重新加入已解析和拆分的内容 有任何想法吗 你太迟了 当键入的命令到达 Python 时 您的 shell 已经发挥了它的魔力 例如 引
  • 如何计算数据框中按另一列的列值分组的一列的连续字符串值?

    我有以下数据框 Levels Labels Confidence 0 Hands 0 8 0 Leg 0 7 0 Eye 0 9 1 Ear 0 9 1 Eye 0 8 2 Hands 0 9 2 Eye 0 8 3 Eye 0 8 我想检
  • 在 django 中自定义项目和应用程序模板

    我想自定义运行时创建的文件和文件夹 python manage py startapp appname 我发现一遍又一遍地做一些事情 我认为如果在创建新应用程序时存在我的自定义功能 那就太好了 您知道创建应用程序时可以在哪里自定义默认文件吗
  • 查找正在导入哪些 python 模块

    从应用程序中使用的特定包中查找所有 python 模块的简单方法是什么 sys modules是将模块名称映射到模块的字典 您可以检查其键以查看导入的模块 See http docs python org library sys html
  • App Engine NDB:如何访问属性的 verbose_name

    假设我有这个代码 class A ndb Model prop ndb StringProperty verbose name Something m A m prop a string value 当然 现在如果我打印 m prop 它会
  • 使用pathlib获取主目录

    翻看新的pathlib在 Python 3 4 中 我注意到没有任何简单的方法来获取用户的主目录 我能想到的获取用户主目录的唯一方法是使用旧的os path像这样的库 import pathlib from os import path p
  • Django 多对多关系(类别)

    我的目标是向我的 Post 模型添加类别 我希望以后能够按不同类别 有时是多个类别 查询所有帖子 模型 py class Category models Model categories 1 red 2 blue 3 black title
  • 高级描述熊猫

    有没有像 pandas 那样更高级的功能 通常我会继续这样 r pd DataFrame np random randn 1000 columns A r describe 我会得到一份很好的总结 就像这样 A count 1000 000
  • 如何在Django终端后台启动celery

    我开始芹菜作为 python manage py celeryd 它正在工作 但在前台 然后为了测试命令 我需要启动另一个终端并在那里执行操作 有什么办法可以在后台启动它吗 我试过这个 python manage py celeryd 但话
  • 类型错误:此 COM 对象无法自动执行 makepy 过程 - 请为此对象手动运行 makepy

    这是什么错误 回溯错误 C Users DELL PycharmProjects MyNew venv Scripts python exe C Users DELL PycharmProjects MyNew agaaaaain py T
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • python Recipe:列出最接近等于值的项[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 考虑像这样的列表 0 3 7 10 12 15 19 21 我想获得最接近任何值的最近的最小数字 所以如果我通过4 我会得到3 如果我
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • Django 独特的不工作

    我在从查询中过滤掉重复项时遇到问题 我正在使用 Django 1 4 和 Postgres 8 4 13 我在我的模型对象上使用这个查询 它是一个 jquery 自动完成 term request GET get term field re
  • 如何展平解析树并存储在字符串中以进行进一步的字符串操作 python nltk

    我正在尝试从树结构中获取扁平树 如下所示 我想将整个树放在一个字符串中 就像没有检测到坏树错误一样 S NP SBJ NP DT The JJ high JJ seven day PP IN of NP DT the CD 400 NNS
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 如何使用 enumerate 来倒数?

    letters a b c 假设这是我的清单 在哪里for i letter in enumerate letters 将会 0 a 1 b 2 c 我怎样才能让它向后枚举 如 2 a 1 b 0 c 这是一个很好的解决方案并且工作完美 i
  • pandas.read_fwf 忽略提供的数据类型

    我正在从文本文件导入数据框 我想指定列的数据类型 但 pandas 似乎忽略了dtype input 一个工作示例 from io import StringIO import pandas as pd string USAF WBAN S
  • 使用 MPI 的 Allreduce 对 Python 对象求和

    我正在使用使用 Python 中的字典和计数器构建的稀疏张量数组操作 我想让并行使用这个数组操作成为可能 最重要的是 我最终在每个节点上都有计数器 我想使用 MPI Allreduce 或另一个不错的解决方案 将其添加在一起 例如 使用计数

随机推荐

  • 按字段的前两个字符对 SQL 进行排序

    我正在尝试按销售人员姓名缩写对一些数据进行排序 销售代表字段的长度为 3 个字符 并且是名字 姓氏和帐户类型 所以 鲍勃史密斯将是 BS 我只需要按前两个字符排序 如何提取某个代表的所有数据 其中字段的前两个字符等于 BS 在某些数据库中你
  • 在Python中检测64位操作系统(windows)

    有谁知道我将如何检测 Windows 在 Python 下的位版本 我需要知道这是一种使用正确的程序文件文件夹的方法 非常感谢 我认为 Mark Ribau 已经发布了该问题的最佳解决方案 Python 2 7 及更高版本的问题的最佳答案是
  • 使用plot.ly Dash 等待结果时显示加载符号

    In my Dash基于应用程序 按钮触发长时间运行的计算 在结果尚未出现时显示加载动画并使按钮处于非活动状态以便在计算完成之前不会再次单击该按钮不是很好吗 我在用Bulma用于 UI 设计并想使用button is loading为此目的
  • 为什么 typescript-eslint 对 enumMember 强制采用驼峰命名法?

    TypeScript 文档中的所有枚举示例写入枚举成员作为帕斯卡命名法 例如 enum Direction Up 1 Down Left Right But typescript eslint 命名约定强制使用驼峰命名法 并拒绝帕斯卡命名法
  • 我可以使用谷歌地图 API v3 来获取位置的时区吗?

    是否可以使用谷歌地图API来获取时区 我已经在使用它的 api 进行地理编码和地图显示 我还想添加时区 但我在文档中找不到任何内容 有任何想法吗 链接 您可以使用时区API 例如 使用 jQuery ajax url https maps
  • NodeJS:如何将base64编码的字符串解码回二进制? [复制]

    这个问题在这里已经有答案了 我正在使用 salt 实现密码哈希 因此我将 salt 生成为二进制 对密码进行哈希处理 对密码和 salt 进行 Base64 编码 然后将它们存储到数据库中 现在 当我检查密码时 我应该将盐解码回二进制数据
  • Android 从布局视图创建并打印 pdf

    我正在尝试从 xml 布局视图创建 PDF 文件 我在该布局中有一个列表视图 添加项目并根据子项设置高度 PDF 正在创建但未填充整个页面 我尝试过的是 PdfDocument PageInfo pageInfo new PdfDocume
  • Android中如何获取唯一的设备硬件ID? [复制]

    这个问题在这里已经有答案了 如何获取 Android 中唯一的设备 ID 该 ID 在执行手机重置或操作系统更新时无法更改 更新 19 11 2019 下面的答案与今天不再相关 因此 对于任何寻找答案的人 您应该查看下面链接的文档 http
  • 使用 java 中的 toUpperCase() 将 ß.cfg 转换为大写

    我正在尝试以下代码 String s1 cfg System out println s toUpperCase 我得到的输出是SS CFG因为 Unicode 没有定义 的大写版本 而我希望输出为 CFG 我有什么办法可以实现这一目标吗
  • 从基于 Flask 的 Python 服务器下载文件

    我正在尝试使用我在以下 URL 找到的代码 http code runnable com UiIdhKohv5JQAAB6 how to download a file generated on the fly in flask for p
  • 如何使用 SWRevealViewController 显示调整大小的侧边栏?

    我在 IOS 应用程序 通用 中使用 SWRevealViewController 我在 iPhone 和 iPad 中都获得了侧边栏 但我想显示覆盖 90 屏幕的侧边栏 我该怎么办 打开SWRevealViewController m文件
  • 通过 pandas 中列名称的子字符串融化列(python)

    我有数据框 subject A target word gd A target word fd B target word gd B target word fd subject type 1 1 2 3 4 mild 2 11 12 13
  • Swing:如何制作具有软边框的非矩形窗口?

    如何在 Java 中制作具有软边框的非矩形窗口 软边框 也称为软剪裁 是没有锯齿伪影的边框 我在网上搜索了很多 发现了几篇关于半透明和 或 非矩形窗户 软边界 这个话题很令人困惑 看来我找到的信息有优惠 将软边框应用于组件inside另一个
  • 有时 Facebook 共享对话框无法在 iOS 上加载

    有时 当我启动 Facebook 共享对话框时 操作系统会切换到 Facebook 应用程序 但共享对话框不会加载 然后如果你再试一次 通常会成功 为什么第一次不起作用 NSURL url NSURL URLWithString some
  • 如何在 Perl 中有效地解析 CSV 文件?

    我正在开展一个项目 涉及在 Perl 中解析大型 csv 格式的文件 并且希望提高工作效率 我的方法是split 首先按行读取文件 然后split 每行再次用逗号来获取字段 但这并不是最理想的 因为至少需要两次传递数据 一次按行分割 然后再
  • 相同数据的多个查找结构:内存重复?

    假设我有一群人的数据 并且我希望能够以不同的方式查找他们 也许有某种数据结构 如二叉树 可以方便按名称查找 也许还有另一个 如列表 是按创建顺序排列的 也许还有更多 在许多语言中 每个人都会在堆上分配一次 每个数据结构都包含指向该内存的指针
  • Rails 应用程序有批量电子邮件插件吗?

    有谁知道有一个插件或可以用来为 Rails 应用程序发送批量电子邮件的东西吗 具体来说 我希望能够将 HTML 电子邮件文件传递给 rake 任务或其他任务 并将其通过电子邮件发送给所有注册到我的网站并选中 请向我发送有关 XXX 的信息
  • 确定是否通过 FCM 通知单击打开了活动

    我正在使用 fcm 控制台向所有安装了我的应用程序的设备发送消息 通知没有任何额外的有效负载 只有通知消息 我想知道是否有一种简单的方法可以知道是否通过 FCM 通知单击打开了活动 有一个解决方案 通过扩展FirebaseMessaging
  • 模拟索引属性

    我正在使用 Moq 编写单元测试 我创建了一个模拟对象 现在 当我尝试模拟其属性时 我收到错误 表达式树可能不包含索引属性 这是我的代码 public Node GetNode IMyInterface interface string i
  • Pycharm:设置运行manage.py任务的环境变量

    我已经移动了我的SECRET KEY我的设置文件中的值 当我加载 virtualenv 时它会被设置 我可以确认该值存在于python manage py shell 当我运行 Django 控制台时 SECRET KEY失踪了 这是应该的