2016-10-27 4 views
0

저는 Pygraphviz를 Mac에서 Python3과 함께 사용하려고 노력해 왔으며 TypeError를 해결할 수 없습니다.Pygraphviz/Python3/Mac : TypeError

/usr/local/bin/fdp //<-- this shows that Eclipse finds 'fdp' after adding /usr/local/bin to $PATH, ERROR in the following: 
Traceback (most recent call last): 
    File "/Users/flurin/Documents/workspace/pedQN/main.py", line 14, in <module> 
    pos = nx.nx_agraph.graphviz_layout(g.to_undirected(), prog='neato') 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/networkx/drawing/nx_agraph.py", line 228, in graphviz_layout 
    return pygraphviz_layout(G,prog=prog,root=root,args=args) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/networkx/drawing/nx_agraph.py", line 262, in pygraphviz_layout 
    A.layout(prog=prog,args=args) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pygraphviz/agraph.py", line 1358, in layout 
    data = self._run_prog(prog, ' '.join([args, "-T", fmt])) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pygraphviz/agraph.py", line 1338, in _run_prog 
    warnings.warn(b"".join(errors), RuntimeWarning) 
TypeError: cannot use a string pattern on a bytes-like object 

I 실행할 경우 특히

, 다음 코드의 출력 (Python3/이클립스 네온/맥 OS 10.10.5, here에서 적응 가이드)

import networkx as nx 
import queueing_tool as qt 
import pygraphviz as pgv 

a = pgv.AGraph() 
print(a._get_prog('fdp')) 

g = qt.generate_random_graph(200, seed=3) 
q = qt.QueueNetwork(g, seed=3) 
q.max_agents = 20000 
q.initialize(100) 
q.simulate(10000) 

pos = nx.nx_agraph.graphviz_layout(g.to_undirected(), prog='neato') 

다음 오류이며 Python 2.7.x를 사용하는 동일한 코드 ('print arg'를 'print arg'로 바꾸기 만하면됩니다.) 다음과 같은 결과가 나옵니다. (경고 톤 만 나오지만 작동합니다)

/usr/local/bin/fdp 
/usr/local/lib/python2.7/site-packages/pygraphviz/agraph.py:1338: RuntimeWarning: Warning: node 0, position [ 5.50797903 7.08147823], expected two floats 
Warning: node 12, position [ 5.44649018 7.80314765], expected two floats 
[... here other warnings of the same kind] 
Warning: Overlap value "prism" unsupported - ignored 

    warnings.warn(b"".join(errors), RuntimeWarning) 

내 질문은, 어떻게 pygraphviz를 Python3에서도 사용할 수 있습니까? 나는 어디를 봐야할지 모른다. 위의 코드를 터미널이나 Eclipse에서 실행할 때 발생하는 오류에는 차이가 없다는 점에 유의하십시오.

Python3과 호환되지 않습니까? 나는 몇 년 전에 "과학적 목적"을 위해 여전히 Python2.x를 사용하는 것이 더 좋을 수 있다고 말한 것을 기억합니다. 아직도 그렇습니까?

미리 도움을 주셔서 감사합니다.

+1

Aric의 대답을 확인하십시오. – Joel

+0

또한이 오류는 코드에서 런타임 경고를 생성하는 경우에만 발생합니다. 나는 런타임 경고의 원인을 해결했다. 이제 위의 오류없이 스크립트가 완료됩니다. –

답변