为什么 pygraphviz/agraph 中的 draw() 在服务器上(但在本地)不起作用?

Why does draw() in pygraphviz/agraph not work on the server (but locally)?

我有一个使用 Pygraphviz 的 Python 应用程序,它在本地运行良好,但在服务器上 draw 函数会抛出错误。它发生在 make_svg. The following lines are the relevant part of the errors I get. (The full trail is here.)

File "/path/to/app/utils/make_svg.py", line 17, in make_svg
  prog='dot'
File "/path/to/pygraphviz/agraph.py", line 1477, in draw
  fh = self._get_fh(path, 'w+b')
File "/path/to/pygraphviz/agraph.py", line 1506, in _get_fh
  fh = open(path, mode=mode)
FileNotFoundError: [Errno 2] No such file or directory: 'app/svg_files/nope.svg'

记录 type(g) 按预期给出 <class 'pygraphviz.agraph.AGraph'>

我在 Webfaction 服务器上的 mod_wsgi 4.6.5/Python3.7 环境中的 virtualenv 中工作。
在本地,我使用带有 Python 3.5.
的 virtualenv Pygraphviz的版本是1.3.1。
(我先在服务器上有1.5。错误完全一样,除了行号。)

我能做什么?

去年 this bug report 中描述了同样的错误。
我不知道应该创建哪个目录。 svg_files 存在并拥有 777 的权利。

make_svg 末尾的 draw 函数应创建 SVG。
(并且在 extract_coordinates_from_svg the file is removed again.)
The file name is a hash created in connected_dag 末尾(svg_name)。

在服务器上app/svg_files和本地描述的地方好像不一样
我明确定义了路径,现在可以了。

file_path = '{grandparent}/svg_files/{name}.svg'.format(
    grandparent=os.path.dirname(os.path.dirname(__file__)),
    name=name
)
g.draw(file_path, prog='dot')