【问题标题】:ImportError when trying to import Prov Module in Python尝试在 Python 中导入 Prov 模块时出现 ImportError
【发布时间】:2017-06-11 07:54:52
【问题描述】:

我在尝试从 Prov 包中导入模块时遇到此错误。 这是我的文件的内容:

#!/usr/bin/env
import sys
egg_path='/Library/Python/2.7/site-packages/prov-1.5.0-py2.7.egg/prov'
sys.path.append(egg_path)
#... rest of code
import model as prov

def main():
    # Create a new provenance document
    d1 = ProvDocument()  # d1 is now an empty provenance document
    # Declaring namespaces for various prefixes used in the example
    d1.add_namespace('now', 'http://www.provbook.org/nownews/')
    d1.add_namespace('nowpeople', 'http://www.provbook.org/nownews/people/')
    d1.add_namespace('bk', 'http://www.provbook.org/ns/#')

    # Entity: now:employment-article-v1.html
    e1 = d1.entity('now:employment-article-v1.html')
    # Agent: nowpeople:Bob
    d1.agent('nowpeople:Bob')

这是输出:

Traceback (most recent call last): File "prov.py", line 6, in <module> import model as prov File "/Library/Python/2.7/site-packages/prov-1.5.0-py2.7.egg/prov/model.py", line 25, in <module> from prov import Error, serializers ImportError: cannot import name Error

有什么想法或修复吗?我使用 easy_install prov 安装了 Prov。

【问题讨论】:

    标签: python python-2.7 importerror python-module easy-install


    【解决方案1】:

    你需要重命名你的模块文件prov.py。由于模块名称冲突,它会阻止导入第三方库。

    确保删除prov.pyc

    【讨论】:

    • 你能详细说明一下吗?我尝试导入的文件称为模型,它尝试从名为 prov 的文件中导入错误和序列化程序。但是,我在包中没有看到 prov。
    • 啊,我修好了!我使用的文件也称为 prov.py,所以它是一个循环依赖。
    • from prov import Error, serializers 尝试导入prov;而不是包provprov,而是导入名为prov 的模块。尝试在文件开头添加以下行:import prov; print(prov)
    【解决方案2】:

    我发现了错误。我尝试导入的文件的名称也称为 prov.py 。这是一个循环依赖问题。

    感谢你们这么快的回复!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 2013-12-14
      • 2019-07-03
      • 1970-01-01
      相关资源
      最近更新 更多