1

mod_wsgi を使用して Apache 2.4.7 で実行される Python Flask アプリケーションを取得しようとしています。その主な目的は、人々とその関心のグラフを作成し、それらの間のつながりを示すことです (たとえば、A と B が両方とも PHP に関心がある場合、A <-> PHP <-> B リンクが存在します)。

Ubuntu パッケージが GTS を無効にし、アプリケーションがその機能を必要とするため、Graphviz を手動でコンパイルしました。私が使用したコンパイルオプションは次のとおり--disable-static --with-x --with-gts --disable-ruby --disable-tclです。

以下を使用して pygraphviz をインストールしましsudo pip install pygraphvizた。Ubuntu 14.04 で Python 2.7.6 を使用しています。

問題を引き起こしていると思われる基本的なコードは次のとおりです。

import pygraphviz as pgv 
graph = pgv.AGraph(overlap = 'false', name = name)
# Add nodes
graph.layout(prog = 'neato')

これはコマンド ラインでは正常に実行されますが、Apache で実行すると、内部サーバー エラーが発生し、エラー ログに次のトレースバックが記録されます。

[Mon Jan 12 13:45:38.228420 2015] [:error] [pid 19500:tid 140471782790912] Traceback (most recent call last):
[Mon Jan 12 13:45:38.228427 2015] [:error] [pid 19500:tid 140471782790912]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
[Mon Jan 12 13:45:38.228434 2015] [:error] [pid 19500:tid 140471782790912]     response = self.full_dispatch_request()
[Mon Jan 12 13:45:38.228459 2015] [:error] [pid 19500:tid 140471782790912]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
[Mon Jan 12 13:45:38.228465 2015] [:error] [pid 19500:tid 140471782790912]     rv = self.handle_user_exception(e)
[Mon Jan 12 13:45:38.228471 2015] [:error] [pid 19500:tid 140471782790912]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
[Mon Jan 12 13:45:38.228476 2015] [:error] [pid 19500:tid 140471782790912]     reraise(exc_type, exc_value, tb)
[Mon Jan 12 13:45:38.228481 2015] [:error] [pid 19500:tid 140471782790912]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
[Mon Jan 12 13:45:38.228489 2015] [:error] [pid 19500:tid 140471782790912]     rv = self.dispatch_request()
[Mon Jan 12 13:45:38.228594 2015] [:error] [pid 19500:tid 140471782790912]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
[Mon Jan 12 13:45:38.228603 2015] [:error] [pid 19500:tid 140471782790912]     return self.view_functions[rule.endpoint](**req.view_args)
[Mon Jan 12 13:45:38.228609 2015] [:error] [pid 19500:tid 140471782790912]   File "/home/paul/supervisor-finder/flask/supervisorfinder.py", line 154, in show_person
[Mon Jan 12 13:45:38.228614 2015] [:error] [pid 19500:tid 140471782790912]     graph = build_graph(graph_name, results, topics)
[Mon Jan 12 13:45:38.228659 2015] [:error] [pid 19500:tid 140471782790912]   File "/home/paul/supervisor-finder/flask/supervisorfinder.py", line 124, in build_graph
[Mon Jan 12 13:45:38.228668 2015] [:error] [pid 19500:tid 140471782790912]     graph.layout(prog = 'neato')
[Mon Jan 12 13:45:38.228674 2015] [:error] [pid 19500:tid 140471782790912]   File "/usr/lib/pymodules/python2.7/pygraphviz/agraph.py", line 1305, in layout
[Mon Jan 12 13:45:38.228679 2015] [:error] [pid 19500:tid 140471782790912]     data=self._run_prog(prog,' '.join([args,"-T",fmt]))
[Mon Jan 12 13:45:38.228684 2015] [:error] [pid 19500:tid 140471782790912]   File "/usr/lib/pymodules/python2.7/pygraphviz/agraph.py", line 1278, in _run_prog
[Mon Jan 12 13:45:38.228728 2015] [:error] [pid 19500:tid 140471782790912]     raise IOError("".join(errors))
[Mon Jan 12 13:45:38.228736 2015] [:error] [pid 19500:tid 140471782790912] IOError

私のWSGI構成ファイルは次のとおりです。

import sys
import logging

sys.path.insert(0, '/home/paul/supervisor-finder/flask')
logging.basicConfig(stream=sys.stderr)

from supervisorfinder import app as application

最初は、この質問と同じ問題かもしれないと思いました: PyGraphViz agraph.layout() が I0 エラーをスローしますが、ソースを確認しましたが、関数agraph.pyを呼び出していません_get_prog

誰が何が間違っているのか提案できますか? 私は Python を初めて使用するので (通常、Perl や PHP などの C スタイルの言語を使用します)、「明らかな」エラーを起こしている可能性があります。

4

0 に答える 0