正常工作
serj@venus ~/work/hello $ tree -L 3 .
.
├── hello
│ ├── __init__.py
│ └── package
│ ├── __init__.py
│ └── module.py
└── main.py
serj@venus ~/work/hello $ cat main.py
from hello.package.module import print_hello
print_hello()
serj@venus ~/work/hello $ python main.py
Hello Void
但是当我将main.py移动到hello包并将import string更改为开始时。
serj@venus ~/work/hello/hello $ tree -L 3 ..
..
├── hello
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── main.py
│ └── package
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── module.py
│ └── module.pyc
└── README
serj@venus ~/work/hello/hello $ cat main.py
from .package.module import print_hello
print_hello()
serj@venus ~/work/hello/hello $ python main.py
Traceback (most recent call last):
File "main.py", line 1, in <module>
from .package.module import print_hello
ValueError: Attempted relative import in non-package
为什么它将hello报告为非包装?详细信息详情