【问题标题】:python: my package import fails on 3.1, but works on 2.6python:我的包导入在 3.1 上失败,但在 2.6 上有效
【发布时间】:2011-03-13 00:24:15
【问题描述】:

我决定在 python 3.x 而不是 2.x 中开发我的家庭项目。所以我决定检查它是否在 3.1 下工作。我在我的包目录上方运行python3.1,然后:

>>> import fathom
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "fathom/__init__.py", line 3, in <module>
    from schema import Database
ImportError: No module named schema

当我进入fathom目录时,可以导入架构:

>>> import schema

另外,当我在我的包目录上方运行 python2.6 时,我可以这样做:

>>> import fathom

我的__init__.py 有以下导入:

from schema import Database
from inspectors import PostgresInspector, SqliteInspector, MySqlInspector

我应该为python3.1添加一些东西吗?

【问题讨论】:

    标签: python import python-3.x


    【解决方案1】:

    你试过relative import吗?

    from . import schema
    from .inspectors import PostgresInspector
    

    也适用于 Python 2.6。

    2to3 脚本可以帮助您查明更多此类问题。

    【讨论】:

    • 是的,相对进口需要这个。一开始。我不知道这件事。但是 2to3 工作得很好,也纠正了一些其他的东西。谢谢:-)
    猜你喜欢
    • 1970-01-01
    • 2018-11-28
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    相关资源
    最近更新 更多