我正在使用Hy编写一个Django网络服务器,这是一种编译成Python的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”。
答案 0 :(得分:2)
我通常建议使用.py
文件导入.hy
这类文件。但是Django是开源的,因此如果有必要,肯定可以修补本地安装。
Django使用settings.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
运行它。