Python程序无法导入点解析器

时间:2015-02-16 05:35:55

标签: python numpy graphviz pydot

我正在尝试从命令行运行一个巨大的进化模拟python软件。该软件依赖于以下python包:

1-networkX

2-pyparsing

3-numpy的

4-pydot

5-matplotlib

-6- graphviz的

我得到的错误是:

Couldn't import dot_parser, loading of dot files will not be possible.
initializing with file= initAdapt.py in model dir= ./Test_adaptation//
Traceback (most recent call last):
  File "run_evolution.py", line 230, in <module>
    gr.write_dot( os.path.join(test_output_dir, 'test_net.dot') )
  File "/Library/Python/2.7/site-packages/pydot.py", line 1602, in <lambda>
    lambda path, f=frmt, prog=self.prog : self.write(path, format=f,          prog=prog))
  File "/Library/Python/2.7/site-packages/pydot.py", line 1696, in write
    dot_fd.write(self.create(prog, format))
  File "/Library/Python/2.7/site-packages/pydot.py", line 1740, in create
    self.write(tmp_name)
  File "/Library/Python/2.7/site-packages/pydot.py", line 1694, in write
    dot_fd.write(self.to_string())
  File "/Library/Python/2.7/site-packages/pydot.py", line 1452, in to_string
    graph.append( node.to_string()+'\n' )
  File "/Library/Python/2.7/site-packages/pydot.py", line 722, in to_string
    node_attr.append( attr + '=' + quote_if_necessary(value) )
TypeError: cannot concatenate 'str' and 'int' objects

我已经尝试过针对堆栈溢出的类似question建议的解决方案。我仍然得到同样的错误。这是我正在使用的包版本和我的python版本。

  • 我正在使用python 2.7.6
  • 输入命令which -a python会产生结果:“/ usr / bin / python”。

1-pyparsing(1.5.7)

2-pydot(1.0.2)

3-matplotlib(1.3.1)

4-graphviz(0.4.2)

5-networkx(0.37)

6-numpy(1.8.0rc1)

有什么想法吗?看到类似问题的解决方案对我不起作用,我认为问题可能在我的案例中更为根本。也许我安装python的方式有问题。

2 个答案:

答案 0 :(得分:3)

您没有使用最新版本的pydot?

1.0.2的这个版本看起来确实解决了这个问题:

https://code.google.com/p/pydot/source/diff?spec=svn10&r=10&format=side&path=/trunk/pydot.py

见第722行。

答案 1 :(得分:1)

升级我的pyparsing模块解决了这个问题。尝试:

pip install --upgrade pyparsing