运行 Hy 中的 Django

Running Django in Hy

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

我也想用 Hy 写上面的文件,而不是 Python。

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

编辑:将 "bytecode" 更正为 "ast"。

我通常建议使用 .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.

运行它