Python 3包和脚本中导入的最佳实践

时间:2018-05-05 05:04:22

标签: python packages python-import

考虑这个简单的文件夹结构:

root
  Package1
    x.py
    y.py
  Package2
    z.py
  Examples
    main.py

现在我们的要求是:

  • x.py需要导入y.py
  • z.py需要导入y.py
  • main.py需要导入y.py和z.py

以下是有效的:

x.py

import y

def x():
  y()

y.py

def y():
  pass

z.py

import package1.y as y

def z():
  y.y()

main.py

import sys
from os import path
sys.path.append(  path.dirname(  path.dirname( path.abspath(__file__) ) ) )

import package1.y as y
import package2.z as z

y.y()
z.z()

问题:

  1. 这是在Python 3中设置导入的最佳和推荐方法吗?
  2. 我真的不喜欢在sys.path中更改main,因为它强烈地绑定了内部代码文件中的包位置的假设。有没有办法解决这个问题?
  3. 我也真的不喜欢as y中多余的import package1.y as y部分。有没有办法解决这个问题?

0 个答案:

没有答案