"人言落日是天涯,望极天涯不见家" <kelvin....@gmail.com> wrote in message news:9529d52b-01b2-402c-a0a0-1e9240038...@l14g2000pre.googlegroups.com...
On Feb 27, 9:38 pm, "Frank Millman" <fr...@chagford.com> wrote:
"人言落日是天涯,望极天涯不见家" <kelvin....@gmail.com> wrote in message

news:fa94323b-d859-4599-b236-c78a22b3d...@t19g2000prd.googlegroups.com...

> On Feb 27, 9:22 pm, "Frank Millman" <fr...@chagford.com> wrote:

> This behavior is by design or just a bug for Python3.x ?

Definitely by design.

Have a look at PEP 328 -http://www.python.org/dev/peps/pep-0328/

"In Python 2.4 and earlier, if you're reading a module located inside a
package, it is not clear whether
import foo
refers to a top-level module or to another module inside the package. As
Python's library expands, more and more existing package internal modules
suddenly shadow standard library modules by accident. It's a particularly
difficult problem inside packages because there's no way to specify which
module is meant. To resolve the ambiguity, it is proposed that foo will
always be a module or package reachable from sys.path. This is called an
absolute import."

HTH

Frank

Yes, it's okay with the change in a.py with below line:
from . import b

But another issue occurred if I want to run the a.py separately.
$ cd module
$ python a.py
Traceback (most recent call last):
 File "a.py", line 1, in <module>
   from . import b
ValueError: Attempted relative import in non-package

Does that mean the relative import only allowed in the package.
And it cannot be run as __main__ program unless I change the relative
import back to absolute import?
I think this behavior is strange and difficult to use.


I think that PEP 366 addresses your question -

   http://www.python.org/dev/peps/pep-0366/

I came across this while investigating a separate problem. It looks a bit complicated, and I don't have such a requirement, so I did not look at it too closely.

Have a read and see if it solves your problem. If not post a follow-up message here and see if someone else can offer more information.

Frank


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to