0

我的脚本有错误,因为在路径中找不到“neato.exe”。当我查看 os.environ["PATH"] 时,确实C:\\Program Files (x86)\\Graphviz2.38\\bin,路径neato.exe不存在。我暂时可以通过添加这一行来进行破解,但这似乎并不令人满意。

if  not 'C:\\Program Files (x86)\\Graphviz2.38\\bin' in os.environ["PATH"]: 
    os.environ["PATH"] += os.pathsep + 'C:\\Program Files (x86)\\Graphviz2.38\\bin' 

尽管如此,它表明该错误ValueError("Program %s not found in path." neato.exe)是一个准确的错误。当我将路径添加到 Neato 时,该脚本有效。我在windows中添加C:\Program Files (x86)\Graphviz2.38\bin了我的环境变量,但无济于事。而且我还注意到我的路径环境中只有几条路径。Vars.,而不是 python 列出的许多。我正在使用 python 3.7 并使用 anaconda 导航器运行它。我想做一个更永久的改变,这样我就不必编辑上面neato.exe愚蠢的每个脚本if statement。有谁知道如何更改 os.environ["PATH"]anaconda 中的内容?

我正在使用networkx,networkx.drawing.nx_agraph.to_agraph。脚本agraph.py有这个函数(_which()),需要进行路径匹配,否则会抛出错误。

def _which(self, name):
    """Searches for name in exec path and returns full path"""


    import os
    import glob

    paths = os.environ["PATH"]

    if os.name == "nt":
        exe = ".exe"
    else:
        exe = ""
    for path in paths.split(os.pathsep):

        match = glob.glob(os.path.join(path, name + exe))
        if match:
            return match[0]
    raise ValueError("No prog %s in path." % name)
4

1 回答 1

0

关于 Windows 路径的一些注意事项:

  1. Windows 路径是用户定义和系统定义的组合 - 前者附加到后者
  2. Windows 路径的长度限制很短

不幸的是,由于上述原因,您可能需要临时更改程序的路径,以确保它可以找到您正在寻找的二进制文件。

在执行脚本之前,您可以在开始时使用 Graphviz bin 目录设置PATH环境变量。

于 2019-11-04T21:04:36.957 回答