全局python导入包

时间:2015-07-20 19:24:45

标签: python python-2.7

我的目录结构是:

package_name/
  __init__.py
  script.py
  time.py

我尝试从time导入script.py (内置包)。然而,我的兄弟time.py却被联系起来。

导入包全球 的语法是什么?(例如从/usr/lib/python2.7/dist-packages导入)

  • c#中,我知道它是global::前缀,它在python中的等价物是什么?

2 个答案:

答案 0 :(得分:2)

对您的导入更明确。 import time将导入python时间模块。 from mypackage import time将导入mypackage包中的time模块。

import time永远不应导入mypackage.time

那就是说,不要影响python的内置名称,这是一个坏习惯,后来会引发这些令人头疼的问题。

答案 1 :(得分:2)

黑客

虽然还有其他方法,但我采用了这个方法

1)添加子包

我们称之为 utils 。您的目录树应如下所示:

package_name/
  __init__.py
  script.py
  time.py

  utils/
      __init__.py

2)在该软件包

下创建名为builtin.py的文件

这应该是builtin.py

的内容
import time
time = time

3)使用它!

使用以下内容在time中导入script.py

from utils.builtin import time

time.sleep(5)