django - 在 Hy 中运行 Django
问题描述
我正在使用 Hy 编写一个 Django 网络服务器,Hy 是一种编译成 Python ast 的 Lisp 方言。.py
除了Django 自动查找的特定文件之外,我已经能够在 Hy 中编写所有内容。
myproject/settings.py
myproject/urls.py
app/management/commands/my_management_command.py
我也想用 Hy 编写上述文件,而不是 Python。
.py
我可以通过使用这些文件来导入文件来解决这个限制.hy
,但我更喜欢更优雅的解决方案。有没有办法让 Django 查找.hy
文件而不是这些.py
文件?
编辑:将“字节码”更正为“ast”。
解决方案
我通常建议使用文件来为这种事情.py
导入文件。.hy
但是 Django 是开源的,因此如果需要,当然可以修补本地安装。
Djangosettings.py
使用DJANGO_SETTINGS_MODULE
环境变量找到,然后通过importlib
. 理论上,这将适用于 Hy 模块,前提是首先导入 Hy。因此,诀窍是import hy
在此之前在某处发表声明。有几种启动 Django 的方法,例如django-admin
, manage.py
, python -m django
. 该import hy
语句必须在任何这些尝试导入 Hy 模块之前发生。如果你只是把它放进去manage.py
,我认为其他的仍然行不通。
您可能可以创建一个命令行 Hy 脚本,该脚本先导入 Hy 然后再导入manage.py
,或者其他任何东西,并使用其argv
.