在Python 2.7中从同一文件夹导入另一个文件的正确方法是什么?

时间:2017-03-26 21:12:07

标签: python python-2.7

Python Zen说:

  

应该有一个 - 最好只有一个 - 显而易见的方法

从Python 2.7中的同一文件夹导入另一个文件的正确方法

.
└── myfolder
    ├── file1.py
    ├── file2.py
    └── __init__.py

(假设__init__.py为空)

解决方案1:

file2.py应包含

from myfolder import file1

这很好用:python -m myfolder/file2

然而,这种方法需要在任何地方命名myfolder(这看起来很愚蠢:你不应该用姓氏和原籍城市来引用你的家庭成员)

解决方案2:

另一方面,这失败了" ValueError:尝试在非包裹中进行相对导入":

from . import file1

解决方案3:

就像这样:

from __future__ import absolute_import
from . import file1

解决方案4:

这个版本失败了"没有名为file1"的模块:

import file1

解决方案5:

将每个文件放在其旁边有__init__.py的自己的文件夹中,这似乎也不是一个非常理智的方法。

1 个答案:

答案 0 :(得分:2)

三件事:

    __init__.py

  • myfolder <{1}}中的

  • file2.py

    from .file1 import *
    
  • from . import file1 (请注意python -m myfolder.file2而不是.