小编kar*_*olx的帖子

python27默认情况下导入不应该是绝对的吗?

想象一下目录结构:

/
    a/
        __init__.py
        b.py
        c.py
    c.py

文件/a/b.py看起来像:

import c
should_be_absolute = c

所有其他文件(包括__init__)都是空的.

运行测试脚本时(使用python 2.7):

import a.b
print a.b.should_be_absolute
Run Code Online (Sandbox Code Playgroud)

PYTHONPATH=/从空目录(所以没有被添加到PYTHONPATH从当前目录)我得到

<module 'a.c' from '/a/c.py'>
Run Code Online (Sandbox Code Playgroud)

根据PEP 328import <> is always absolute我期望的声明:

<module 'c' from '/c.py'>
Run Code Online (Sandbox Code Playgroud)

删除/a/c.py文件时输出与预期一致.

我错过了什么?如果这是正确的行为 - 如何cb(而不是a.c)导入模块?

更新:

根据python dev邮件列表,它似乎是文档中的一个错误.python27默认情况下导入不是绝对的.

python import

17
推荐指数
1
解决办法
2849
查看次数

标签 统计

import ×1

python ×1