简体   繁体   English

文件内部 Python 不包括模块(Django,Py2 到 Py3 的转换)

[英]File Inside Python Module Not Included (Django, Py2 to Py3 Conversion)

I am migrating a Django project from 2 to 3 and am running into an import(?) error.我正在将 Django 项目从 2 迁移到 3,但遇到了导入 (?) 错误。

One of the apps/modules contains an __init__.py , admin.py , forms.py , models.py , urls.py , and view.py , but when the module is imported/created only admin , forms , and models are a part of it.其中一个应用程序/模块包含__init__.pyadmin.pyforms.pymodels.pyurls.pyview.py ,但是当导入/创建模块时只有adminformsmodels是一部分。

A dir of the module looks like this:模块的目录如下所示:

['__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__loader__',
 '__name__',
 '__package__',
 '__path__',
 '__spec__',
 'admin',
 'forms',
 'models']

If I try something like import app.views or from. import views如果我尝试import app.viewsfrom. import views from. import views , I get a SyntaxError . from. import views ,我得到一个SyntaxError

Those files have been imported in some other part of your code, they are added to the module when imported.这些文件已经导入到代码的其他部分,导入时它们被添加到模块中。 When Django starts up it will load several modules automatically, things like your models to populate a registry/cache of all models in your apps当 Django 启动时,它会自动加载几个模块,比如你的模型来填充应用程序中所有模型的注册表/缓存

>>> import app
>>> dir(app)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'admin', 'apps', 'models']
>>> import app.views
>>> dir(app)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'admin', 'apps', 'models', 'views']

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM