省建设厅网站合同备案用户名,无锡建设网站的公司简介,设计本体论,移动应用开发专业学什么文件结构如下python_directory/├── __init__.py└── app├── __init__.py├── sub1│ ├── __init__.py│ └── mod1.py└── sub2├── __init__.py├── mod2.py除了 mod1.py#xff0c;其他文件内容都为空。mod1.pyprint(__name__: {}.format(__name__…文件结构如下python_directory/├── __init__.py└── app├── __init__.py├── sub1│ ├── __init__.py│ └── mod1.py└── sub2├── __init__.py├── mod2.py除了 mod1.py其他文件内容都为空。mod1.pyprint(__name__: {}.format(__name__))print(__package__: {}.format(__package__))from ..sub2 import mod2print(Import Successfully!)如果 __package__ 不为空相对引用会根据 __package__ 而不是 __name__[2]。Relative Import In Non-Package如果直接执行一个模块那么它的 __name__ 为 __main__。Python 会认为这个模块是一个最顶层的模块而不管这个模块在文件系统中的实际位置[1]。$ pwd/path_to/python_directory$ python app/sub1/mod1.py__name__: __main____package__: NoneTraceback (most recent call last):File app/sub1/mod1.py, line 3, in from ..sub2 import mod2ValueError: Attempted relative import in non-package一个最顶层的模块 -- 我理解为 Python 把这个模块复制到在一个单独的目录中然后再执行由于该目录下只有这个一个模块 所以它不是一个 package。Beyond Top Level Package$ pwd/path_to/python_directory/app$ python -m sub1.mod1__name__: __main____package__: sub1Traceback (most recent call last):File /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py, line 174, in _run_module_as_main__main__, fname, loader, pkg_name)File /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py, line 72, in _run_codeexec code in run_globalsFile /path_to/python_directory/app/sub1/mod1.py, line 4, in from ..sub2 import mod2ValueError: Attempted relative import beyond toplevel package由于 -m sub1.mod1Python 将 package 的顶层视为 sub1而 ..sub2 位于 app/超过了当前的最顶层 sub1所以报错。└── app├── __init__.py├── sub1│ ├── __init__.py│ └── mod1.py└── sub2正确的调用$ pwd/path_to/python_directory$ python -m app.sub1.mod1__name__: __main____package__: app.sub1Import Successfully!此时 ..sub2 相当于 app.sub2。参考