从具有相同名称的脚本导入Python包

Alf*_*ulu 13 python

我正在尝试通过将脚本从包目录移动到顶级脚本目录来重新组织我的Python项目.在这些更改之后,这就是我的项目层次结构:

MyProject/
    setup.py

    scripts/
        my_package.py

    my_package/
        __init__.py
        module_foo.py
Run Code Online (Sandbox Code Playgroud)

请注意脚本和包具有相同的名称.

脚本my_package.py看起来像这样:

# MyProject/scripts/my_package.py
import os
try:
    import my_package
    print os.path.abspath(my_package.__file__)
except ImportError as e:
    print e
Run Code Online (Sandbox Code Playgroud)

当我们运行上面的脚本解释器导入当前模块而不是的同名(注:my_package已经被安装到site-packages.作为一个鸡蛋,我们的虚拟环境中正常启动)

如果它们具有相同的名称,我如何从脚本中导入my_package my_package.py

其他技术信息:

  • Python 2.7.3
  • Ubuntu Server 12.04 LTS
  • VirtualEnv 1.11.6

Use*_*ser 1

对我来说它适用于

sys.path.insert(0, '..')
Run Code Online (Sandbox Code Playgroud)

因为导入会执行类似的操作for path in sys.path: