0

我有一个使用 Pygraphviz 的 Python 应用程序,可以在本地正常工作,但在服务器上,该draw函数会引发错误。它发生在make_svg. 以下几行是我得到的错误的相关部分。(完整的线索在这里。)

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'>

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

我能做些什么?

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

最后的draw函数make_svg应该创建 SVG。
(并在文件末尾extract_coordinates_from_svg再次删除。)文件名是在( )
中创建的哈希。connected_dagsvg_name

4

1 回答 1

0

在服务器上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')
于 2018-11-24T22:57:51.927 回答