我正在使用Hy编写Django ast服务器,Hy是一种Lisp方言,编译成Python ast。除了Django自动查找的特定.py文件外,我还可以用Hy编写所有东西。
myproject/settings.pymyproject/urls.pyapp/management/commands/my_management_command.py我也想用Hy编写上面的文件,而不是Python。
我可以通过使用这些.py文件导入.hy文件来解决这个限制,但是我更喜欢一个更优雅的解决方案。有没有办法让Django去寻找.hy文件而不是这些.py文件?
编辑:将“字节码”更正为"ast“。
发布于 2018-05-24 04:38:26
我通常建议使用.py文件来导入这类事情的.hy文件。但是Django是开源的,所以如果需要的话,当然可以对本地安装进行修补。
Django使用settings.py环境变量查找DJANGO_SETTINGS_MODULE,然后通过importlib导入它。理论上,这将工作在Hy模块上,前提是首先导入Hy。因此,诀窍是在发生这种情况之前在某个地方放置一个import hy语句。启动Django有几种方法,比如django-admin、manage.py、python -m django。在尝试导入Hy模块之前,必须先使用import hy语句。如果你把它放在manage.py里,我认为其他的还是行不通的。
您可能会创建一个命令行Hy脚本,它导入Hy,然后导入manage.py或其他什么,并使用它的argv运行它。
https://stackoverflow.com/questions/50500570
复制相似问题