python - 从同名脚本导入 Python 包

标签 python

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

MyProject/
    setup.py

    scripts/
        my_package.py

    my_package/
        __init__.py
        module_foo.py

注意脚本和包如何具有相同的名称。

脚本 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

当我们运行上面的脚本时,解释器导入当前模块而不是同名的(注意:my_package已经作为鸡蛋安装到 site-packages 中,我们的虚拟环境已正确激活。)

如何从 脚本 my_package.py 中导入 package my_package ,因为它们具有相同的名称?

其他技术信息:

  • python 2.7.3
  • Ubuntu 服务器 12.04 LTS
  • 虚拟环境 1.11.6

最佳答案

对我来说它适用于

sys.path.insert(0, '..')

因为导入做了类似 for path in sys.path: 的事情。

关于python - 从同名脚本导入 Python 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24477478/

相关文章:

python - pyspark:将字典数组转换为新列

python - 时间戳字符串(Unix 时间)到日期时间或 pandas.Timestamp

javascript - 处理隐藏元素

python - 使用 matplotlib 创建 100% 堆积面积图

python - Cygwin 与 windows 的 python 版本不同

python - 使用 python mock 来计算方法调用的次数

python - 如何在 Django View 中显示 pygooglechart?

python - 检查坐标是否在矩形内

python - 如何本地化我的 WTForms 验证消息?

python - 数据框按最大值排序并显示行名称