运行 Hy 中的 Django
Running Django in Hy
我正在使用 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
文件?
编辑:将 "bytecode" 更正为 "ast"。
我通常建议使用 .py
文件来导入 .hy
文件来处理这种事情。但是 Django 是开源的,所以如果需要的话,当然可以为您的本地安装打补丁。
Django 使用 DJANGO_SETTINGS_MODULE
环境变量找到 settings.py
,然后通过 importlib
导入它。理论上,这将适用于 Hy 模块,前提是首先导入 Hy。所以诀窍是在发生之前的某个地方放置一个 import hy
语句。有几种启动 Django 的方法,如 django-admin
、manage.py
、python -m django
。 import hy
语句必须在任何这些尝试导入 Hy 模块之前发生。如果只放在manage.py
,我想其他的还是不行。
您可以创建一个命令行 Hy 脚本,导入 Hy 然后导入 manage.py
或其他任何内容,然后使用其 argv
.
运行它
我正在使用 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
文件?
编辑:将 "bytecode" 更正为 "ast"。
我通常建议使用 .py
文件来导入 .hy
文件来处理这种事情。但是 Django 是开源的,所以如果需要的话,当然可以为您的本地安装打补丁。
Django 使用 DJANGO_SETTINGS_MODULE
环境变量找到 settings.py
,然后通过 importlib
导入它。理论上,这将适用于 Hy 模块,前提是首先导入 Hy。所以诀窍是在发生之前的某个地方放置一个 import hy
语句。有几种启动 Django 的方法,如 django-admin
、manage.py
、python -m django
。 import hy
语句必须在任何这些尝试导入 Hy 模块之前发生。如果只放在manage.py
,我想其他的还是不行。
您可以创建一个命令行 Hy 脚本,导入 Hy 然后导入 manage.py
或其他任何内容,然后使用其 argv
.