我偶然发现导入问题以及名称中带有连字符的Django应用程序。
据我所知,Django应用程序名称中甚至不允许连字符,但它仍然存在且网站运行没有错误。我绝对不知道应用程序是如何创建的,因为当我开始研究项目时项目已经存在。 (这是一个Django CMS项目,如果它改变了什么btw)
现在的问题是,当我想要在shell或项目中导入某些内容时,我不能只编写from my-app import module
,因为它会因为泛滥而抛出错误。
同样在INSTALLED_APPS
中,它与hypen INSTALLED_APPS = ('my-app')
那么我怎样才能真正解决这个问题并使其可用?我想过重命名,但我真的不知道后果,我也不想在CMS中打破任何东西(我还在学习Django,CMS对我来说很新)
答案 0 :(得分:3)
你可以这样做:
import importlib
module = importlib.import_module('.module', 'my-app')
有关详细信息,请参阅文档https://docs.python.org/3/library/importlib.html#importlib.import_module
编辑:这不是Django特定的问题,而是在Python(以及大多数其他编程语言中)' - ' (连字符)不能用于变量名(As' - '是减法运算符)。