【问题标题】:Running Django in Hy在 Hy 中运行 Django
【发布时间】:2018-05-24 03:41:59
【问题描述】:

我正在使用 Hy 编写一个 Django 网络服务器,Hy 是一种编译成 Python ast 的 Lisp 方言。除了 Django 自动查找的特定 .py 文件之外,我已经能够在 Hy 中编写所有内容。

  • myproject/settings.py
  • myproject/urls.py
  • app/management/commands/my_management_command.py

我也想用 Hy 编写上述文件,而不是 Python。

我可以通过使用这些.py 文件导入.hy 文件来解决此限制,但我更喜欢更优雅的解决方案。有没有办法让 Django 查找 .hy 文件而不是这些 .py 文件?

编辑:将“字节码”更正为“ast”。

【问题讨论】:

  • 从技术上讲,Hy 编译为 Python ast,然后 Python 将其编译为字节码。这就是 Hy 也在 PyPy 上运行的原因。

标签: django hy


【解决方案1】:

我通常建议使用.py 文件来导入.hy 文件来处理这类事情。但是 Django 是开源的,所以如果需要,当然可以修补本地安装。

Django 使用DJANGO_SETTINGS_MODULE 环境变量找到settings.py,然后通过importlib 导入它。理论上,这将适用于 Hy 模块,前提是首先导入 Hy。所以诀窍是在此之前将import hy 声明放在某处。有几种启动 Django 的方法,例如 django-adminmanage.pypython -m djangoimport hy 语句必须在任何这些尝试导入 Hy 模块之前发生。如果你只是把它放在manage.py,我认为其他的仍然行不通。

您可能会创建一个命令行 Hy 脚本,该脚本导入 Hy,然后导入 manage.py 或其他任何内容,并使用其 argv 运行它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多