我有一个使用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
环境中的虚拟机中工作
在本地,我使用Python 3.5的virtualenv。
Pygraphviz的版本是1.3.1。
(首先我在服务器上有1.5。除了行号之外,错误完全相同。(
我能做什么?
去年的错误报告中也描述了同样的错误
我不知道应该创建哪个目录。CCD_ 6存在并且具有权利777。
make_svg
末尾的draw
函数应该创建SVG
(在extract_coordinates_from_svg
结束时,文件再次被删除。(
文件名是在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')