1

我正在尝试在 Linux Mint 17 上安装一个名为 ciscoconfparse 的 python 模块。当我使用 pip 和 python 2 安装它时,当我尝试导入时一切正常,但是当我尝试使用 pip3(对于 Python 3.4)时,模块显示在安装目录中,但我无法导入它的任何部分。

我可以在这里找到模块

/usr/local/lib/python3.4/dist-packages/ciscoconfparse-1.1.1-py3.4.egg/ciscoconfparse

这个目录里面是 ciscoconfparse.py 文件,它有 CiscoConfParse 类,但我不能用

从 ciscoconfparse 导入 CiscoConfParse

当我尝试安装时,似乎有一些问题,但仍然说它已成功安装。

~/Downloads/ciscoconfparse-1.1.1 $ sudo pip3 install ciscoconfparse
下载/解压 ciscoconfparse
  下载 ciscoconfparse-1.1.1.tar.gz (76kB):下载了 76kB
  运行 setup.py (path:/tmp/pip_build_root/ciscoconfparse/setup.py) egg_info 包 ciscoconfparse
    未设置 zip_safe 标志;分析存档内容...

    安装 /tmp/pip_build_root/ciscoconfparse/setuptools_hg-0.4-py3.4.egg

    警告:在目录“*”下找不到与“__pycache__”匹配的先前包含的文件
    警告:在目录“*”下找不到与“*.orig”匹配的先前包含的文件
    警告:在目录“*”下找不到与“BUILD.ME”匹配的先前包含的文件
    警告:在目录“*”下找不到与“BITBUCKET_HG”匹配的先前包含的文件
    警告:在目录“*”下找不到与“.hgrc”匹配的先前包含的文件
    警告:在目录“.hg”下找不到与“*”匹配的先前包含的文件
    警告:在目录“sphinx-doc”下找不到与“*”匹配的先前包含的文件
安装收集的包:ciscoconfparse
  为 ciscoconfparse 运行 setup.py install

    警告:在目录“*”下找不到与“__pycache__”匹配的先前包含的文件
    警告:在目录“*”下找不到与“*.orig”匹配的先前包含的文件
    警告:在目录“*”下找不到与“BUILD.ME”匹配的先前包含的文件
    警告:在目录“*”下找不到与“BITBUCKET_HG”匹配的先前包含的文件
    警告:在目录“*”下找不到与“.hgrc”匹配的先前包含的文件
    警告:在目录“.hg”下找不到与“*”匹配的先前包含的文件
    警告:在目录“sphinx-doc”下找不到与“*”匹配的先前包含的文件
      文件“/usr/local/lib/python3.4/dist-packages/ciscoconfparse/excldiff_test.py”,第 31 行
        打印差异
                  ^
    SyntaxError:无效的语法

成功安装ciscoconfparse
打扫干净...

在作者网站上,他说它已经过测试,可以在 Python > 3.2 上运行。我使用 Pycharm 作为 ide。到目前为止,我似乎可以使用带有 python3 的虚拟环境并查看它是否会改变任何东西,或者我可以将模块放入我正在制作的模块中。是否有任何原因安装可能无法正常工作?或者,将模块包含在我自己的项目中的最佳方式是什么?

4

2 回答 2

1

是否有任何原因安装可能无法正常工作?或者,将模块包含在我自己的项目中的最佳方式是什么?

ciscoconfparse版本 1.1.1 在所有 Python3 版本中均失败,因为相关导入损坏。

由于版本 1.1.1(及之前)不符合PEP 366,相对导入中断;ciscoconfparse为了解决这个问题,ciscoconfparse在包中添加了一个__main__.py。我针对 Python2.7 和 Python3.4.1 手动测试了这个;据我所知,1.1.2 版修复了 Python3 的问题。

于 2014-07-28T08:42:09.560 回答
1

我有同样的问题,但它已在最新版本 1.1.3 上修复,https://pypi.python.org/pypi/ciscoconfparse/1.1.3。请尝试一下。

于 2014-07-29T13:09:44.590 回答