programing tip

pydot이 Windows 8에서 GraphViz의 실행 파일을 찾을 수없는 이유는 무엇입니까?

itbloger 2020. 11. 19. 07:56
반응형

pydot이 Windows 8에서 GraphViz의 실행 파일을 찾을 수없는 이유는 무엇입니까?


Windows 8에 GraphViz 2.32를 설치하고 시스템 PATH 변수에 C : \ Program Files (x86) \ Graphviz2.32 \ bin을 추가했습니다. 여전히 pydot은 실행 파일을 찾을 수 없습니다.

Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    graph.write_png('example1_graph.png')
  File "build\bdist.win32\egg\pydot.py", line 1809, in <lambda>
    lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog))
  File "build\bdist.win32\egg\pydot.py", line 1911, in write
    dot_fd.write(self.create(prog, format))
  File "build\bdist.win32\egg\pydot.py", line 1953, in create
    'GraphViz\'s executables not found' )
InvocationException: GraphViz's executables not found

https://code.google.com/p/pydot/issues/detail?id=65를 찾았 지만 문제를 해결할 수 없습니다.


문제는 Traceback에 표시된 것처럼 pydot 모듈에서 GraphViz의 경로를 찾을 수 없다는 것입니다.

'GraphViz \의 실행 파일을 찾을 수 없습니다'

내 컴퓨터의 PATH에 GraphViz bin 디렉토리를 추가하여 Windows 7 컴퓨터에서이 문제를 해결했습니다. 그런 다음 Python IDE를 다시 시작하여 업데이트 된 경로를 사용합니다.

  1. 아직 설치하지 않은 경우 GraphViz를 설치합니다 (MSI 다운로드를 사용했습니다).
  2. gvedit.exe의 경로를 가져옵니다 (저는 "C : \ Program Files (x86) \ Graphviz2.34 \ bin \").
  3. 이 경로를 컴퓨터의 PATH에 추가하십시오.
  4. 환경 설정으로 이동하여 경로를 설정하는 한 가지 방법은 시작-> 컴퓨터-> 시스템 속성-> 고급 설정-> 환경 변수 각각의 버튼 / 메뉴 옵션을 클릭하는 것입니다.
  5. 사용자 경로 편집을 클릭하십시오.
  6. 변수 값 목록 (세미콜론 포함) 끝에 다음 문자열을 추가합니다. ; C : \ Program Files (x86) \ Graphviz2.34 \ bin
  7. 확인 클릭
  8. Python IDE 다시 시작

Mac brew install graphviz에서는 문제가 해결되었습니다.


이것은 pydot을 설치 한 후 graphviz를 설치했기 때문에 발생했습니다. 따라서 pydot은 그것을 찾을 수 없었습니다. 올바른 순서로 다시 설치하면 문제가 해결되었습니다.


내 경우 Sadik pydot 및 graphviz 오류의 답변 : dot_parser를 가져올 수 없습니다 . Ubuntu 12.04.5 LTS에서 도트 파일을로드 할 수 없습니다.

sudo apt-get install python-pydot


제어판을 통해 PATH 추가를 시도했지만 명령 프롬프트를 다시 시작해야합니다. 다음은 종료하지 않고 노트북 세션의 경로를 업데이트하는 데에도 적용됩니다.

import os     

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

Graphviz 에서 설치 한 다음 Graphviz 를 설치 한 폴더의 경로와 해당 bin 디렉터리를 시스템 환경 경로에 추가하면됩니다.


Windows 8.1 및 Python 2.7의 경우 아래 단계에 따라 문제를 해결했습니다.

1 . graphviz-2.38.msi https://graphviz.gitlab.io/_pages/Download/Download_windows.html 다운로드 및 설치

2. 경로 변수 설정

제어판> 시스템 및 보안> 시스템> 고급 시스템 설정> 환경 변수> 경로> 편집 add 'C : \ Program Files (x86) \ Graphviz2.38 \ bin'

  1. 경로가 필요한 현재 실행중인 응용 프로그램을 다시 시작합니다.

경로에 dot.exe를 추가합니다. 내 컴퓨터> 고급 시스템 설정> 환경 변수> 하이라이트 '경로'를 마우스 오른쪽 버튼으로 클릭 한 다음 설치 위치에 따라 따옴표 안의 모든 것을 "; C : \ Program Files (x86) \ Graphviz2.34 \ bin \"경로에 추가합니다. Graphviz ofcourse. 그런 다음 Python 셸을 다시 시작하고 입력합니다.

import pydot pydot.find_graphviz () 폴더 내부에서 모든 것을 가져 오도록 'bin'뒤에 슬래시가 있는지 확인하십시오. 필요한 것과 경로.


Anaconda 3.6.5로 Windows 10에서 작업하고 있습니다. 나는 관리자 권한이 없으므로 누군가 나와 같은 상황에 처해 있다면이 솔루션은 완벽하게 작동합니다.

내 graphviz의 경로는 외모입니다. C:\Users\User_Name\AppData\Local\Continuum\anaconda3\Library\bin\graphviz

Spyder 또는 Jupyter에서 다음을 입력합니다.

import os os.environ['PATH'].split(os.pathsep) 이것은 환경의 모든 경로를 나열합니다. graphviz 경로가 여기에 없으면 위의 예제와 같이 찾아서 경로를 복사하십시오. 그런 다음 다음을 입력하십시오.os.environ['PATH'] += os.pathsep + 'C:\\Users\\User_Name\\AppData\\Local\\Continuum\\anaconda3\\Library\\bin\\graphviz'

그게 다입니다.하지만 커널을 다시 시작할 때마다이 명령을 실행해야합니다.


나를 위해 : (Win10, Anaconda3) "conda install graphviz"를 완료했는지 확인하십시오.

PATH에 추가해야합니다. C : \ Users \ username \ Anaconda3 \ Library \ bin \ graphviz

PATH를 수정하려면 제어판> 시스템 및 보안> 시스템> 고급 시스템 설정> 환경 변수> 경로> 편집> 새로 만들기로 이동합니다.

이 후에 IDE를 다시 시작하십시오. 작동합니다


Windows에서는 graphviz-2.38.msi를 설치 한 후에도 pydot.py (site-package 폴더 아래에 있음)에 자신의 경로를 추가 할 수 있습니다.

 if os.sys.platform == 'win32':

    # Try and work out the equivalent of "C:\Program Files" on this
    # machine (might be on drive D:, or in a different language)
    #

    if os.environ.has_key('PROGRAMFILES'):

        # Note, we could also use the win32api to get this
        # information, but win32api may not be installed.

        path = os.path.join(os.environ['PROGRAMFILES'], 'ATT', 'GraphViz', 'bin')

    else:

        #Just in case, try the default...
        path = r"C:\PYTHON27\GraphViz\bin"  # add here.

나도 같은 문제가 있었고 마침내 도서관을 살펴보면서 문제를 해결했습니다.

라이브러리는 경로를 C : \ Program Files \ ATT \ Graphviz \ bin으로 설정하는 것을 고려 하지만 기본적으로 Graphviz는 C : \ Program Files (x86) \ Graphviz에 설치되어 32 비트 기준을 거치므로 pydot 이 필수 항목을 가져 오지 못합니다. 통로. 스크립트에서 요구하는대로 디렉토리를 이동하기 만하면됩니다.

추신 :-Environmnet 변수에 동일한 변경을 고려하십시오.

PSS :-또한 Graphviz가 Program Files (x86) 바로 아래에 있는지 또는 ATT 아래에 있는지 확인합니다.


Windows 10 컴퓨터를 실행 중이며 몇 가지 문제도있었습니다. msi 설치 프로그램을 통해 graphviz를 설치했습니다. 시스템 설정을 통한 추가가 작동하지 않았습니다.

msi로 설치를 제거하고 Windows 패키지 관리자 인 chocolatey를 사용했습니다 . 설치된 버전을 제거해야합니다. 그렇지 않으면 chocolatey가 설치되지 않습니다.

이제 잘 실행됩니다. 이런 식으로하는 것이 좋습니다.


위에서 언급 한 문제에 대해 제가 한 작업은 다음과 같습니다. Windows 10 OS 및 Python 3.6.5를 사용하고 있습니다.

  1. 여기클릭하여 PIP 설치

  2. 명령 프롬프트를 열고 "pip install graphviz"명령을 입력하십시오.

  3. 내 컴퓨터 (이 PC)로 이동하여 "graphviz"키워드로 검색

  4. graphviz 폴더를 열고 경로를 복사하여 메모장에 저장하십시오.

  5. graphviz에서 bin 폴더를 찾고 마우스 오른쪽 버튼을 클릭하여 폴더를 복사하십시오.

  6. 이제 다시 내 컴퓨터로 돌아가 "pydotplus"를 검색하십시오.

  7. pydotplus 라는 폴더 가 표시됩니다. 그것을 열고 이전에 복사 한 (Graphviz의) bin 폴더의 사본을 붙여 넣으십시오.

  8. 제어판> 시스템 및 보안> 시스템 설정> 고급 설정> 환경 변수> 새 경로 추가로 이동하십시오.

  9. 메모장에서 복사 한 경로를 추가하고 일련의 "확인"을 클릭합니다.

이제 graphviz를 사용하여 즐길 수 있습니다.


여기에 Graphviz를 설치하고 bin 경로를 추가하여 문제를 해결했습니다.

https://graphviz.gitlab.io/_pages/Download/Download_windows.html

pip install Graphviz 자체가 부적절 해 보입니다.


graphviz에 대해 알아야 할 몇 가지 :

  1. graphviz는 파이썬 모듈 일뿐만 아니라 독립형 프로그램이기도합니다. graphviz를 작동하려면 둘 다 필요하다고 생각합니다.
  2. 독립형 graphviz 프로그램은 원래 AT & T에 의해 개발되었으며 오픈 소스 였지만 폐기되었습니다. 패키지의 현재 관리자는 Python이 프로그램 실행 파일을 찾을 수 있도록 Windows 레지스트리 항목을 포함하는 것을 잊었습니다.
  3. pydotplus \ graphviz.py의 620 행에는 graphviz가 레지스트리에없는 경우 찾을 수있는 백업 경로가 포함되어 있습니다. 이전 ATT 파일 경로를 사용합니다. 컴퓨터에있는 파일 경로를 업데이트하면 (관리자 권한이 필요함) graphviz가 pydotplus와 함께 작동합니다.

예:

# Just in case, try the default... path = r"C:\Program Files (x86)\Graphviz2.38\bin"


"pydot.py"(... \ Anaconda3 \ Lib \ site-packages에 있음)에서 다음을 바꿉니다.

def get_executable_extension():
    # type: () -> str
    if is_windows():
        return '.bat' if is_anacoda() else '.exe'
    else:
        return ''

와:

def get_executable_extension():
    # type: () -> str
    if is_windows():
        return '.exe'
    else:
        return ''

시스템이 "Windows / Anaconda"대 "Windows"이고 ".exe"와 관련된 ".bat"가 없을 때 ".bat"를 추가 할 필요가없는 것 같습니다. 이것은 모든 실행 가능한 pydot 호출에 ".bat"를 추가하는 것보다 낫습니다.


나는이 문제가 있었고 두 세트의 큰 따옴표로 PATH를 인쇄하고 있음을 알았습니다. 다음을 1959 번째 줄에 추가하여 문제를 해결했습니다.

C:\Anaconda\Lib\site-packages\pydot.py

self.progs[prog] = os.path.normpath(self.progs[prog][1:-1])

분명히 최선의 해결책은 아니지만 하루를 보냈습니다.


수동 솔루션을 찾았습니다. sudo apt-get install graphviz

graph.write ( 'test.dot') dot -Tps test.dot -o outfile.ps

https://github.com/jecs89/LearningEveryDay/tree/master/GP 에서 파일을 찾을 수 있습니다.


모든 솔루션 / 게시 / 블로그에 설명 된대로 모든 설치 순서를 시도한 결과 아나콘다가 환경 변수를 읽을 수 없다는 사실을 깨달았습니다. Anaconda 및 Spyder를 닫았습니다. 그런 다음 관리자 모드 (Windows 64 비트 OS 시스템에서)에서 Anaconda를 연 다음 Spyder를 열었습니다. 스크립트는 PYDOT 호출에서 잘 작동했습니다.


Windows 시스템을 사용하지 않고 Linux 플랫폼을 사용하고 있습니다. 베이지안 네트워크를 플로팅하기 위해 파이썬 패키지 pyAgrum을 사용하는 맥락에서이 실행 파일을 찾을 수 없음 문제를 발견했습니다. pyAgrum은 graphviz를 사용하여 네트워크를 표시합니다. python 3.6.4 환경에서 anaconda 플랫폼을 사용하여 pyagrum 및 graphviz를 설치했습니다 (예 :) conda install <package name>.

/conda/envs/<environment name>/bin디렉토리 에서 실행 파일을 찾았습니다 . 그래서, 내 노트북 ​​커널이 그것들을 찾는 문제였습니다.

인 경우 import os명령 os.environ['PATH'].split(os.pathsep)사용 하여 환경이 찾고있는 실행 경로를 확인하십시오. graphviz 실행 파일이 포함 된 경로가없는 경우 다음을 수행하여 추가 할 수 있습니다 os.environ['PATH'] += os.pathsep + <path to executables>..

이 솔루션이 내 상황 밖에서 작동 할 것이라고 생각합니다. 이 솔루션의 주요 단점은 커널을 다시 시작할 때마다 수행해야한다는 것입니다.


pydot 대신 pydotplus를 사용할 수 있습니다.

먼저 C:\Users\zhangqianyuan\AppData\Local\Programs\Python\Python36\Lib\site-packages\pydotplus

둘째, 열기 graphviz.py

셋째, 1925 행-1972 행, 함수 찾기 def create(self, prog=None, format='ps'):

마지막, 함수에서 :

  1. 찾기:

    if prog not in self.progs:
        raise InvocationException(
            'GraphViz\'s executable "%s" not found' % prog)
    

    `

    if not os.path.exists(self.progs[prog]) or \
            not os.path.isfile(self.progs[prog]):
        raise InvocationException(
            'GraphViz\'s executable "{}" is not'
            ' a file or doesn\'t exist'.format(self.progs[prog])
        )
    
  2. 두 블록 사이에 다음을 추가하십시오 (Graphviz의 실행 경로) :

    self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"

  3. 결과를 추가 한 후 :

    if prog not in self.progs:
        raise InvocationException(
            'GraphViz\'s executable "%s" not found' % prog)
    
    self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"
    
    if not os.path.exists(self.progs[prog]) or \
            not os.path.isfile(self.progs[prog]):
        raise InvocationException(
            'GraphViz\'s executable "{}" is not'
            ' a file or doesn\'t exist'.format(self.progs[prog])
        )
    
  4. 변경된 파일을 저장하면 성공적으로 실행할 수 있습니다.

  5. png 파일이 작동하지 않기 때문에 bmp 파일로 저장하는 것이 좋습니다. picture is here


If you dont want to mess around with path variables (e.g. if you are no admin) and if you are working on windows, you can do the following which solved the problem for me.

Open graphviz.py (likely located in ...Anaconda\pkgs\graphviz***\Library\bin) in an editor. If you cant find it you might be able to open it via the error message.

Go to the fuction __find_executables and replace:

elif os.path.exists(os.path.join(path, prg + '.exe')):
   if was_quoted:
      progs[prg] = '"' + os.path.join(path, prg + '.exe') + '"'
   else:
      progs[prg] = os.path.join(path, prg + '.exe')

with

elif os.path.exists(os.path.join(path, prg + '.bat')):
   if was_quoted:
      progs[prg] = '"' + os.path.join(path, prg + '.bat') + '"'
   else:
      progs[prg] = os.path.join(path, prg + '.bat')

The solution is easy, you just need to download and install the Graphviz, from here.

Then set the path variable to the bin directory, in my case it was C:\Program Files (x86)\Graphviz2.38\bin. Last, do the conda install python-graphviz and it should work fine.

참고URL : https://stackoverflow.com/questions/18438997/why-is-pydot-unable-to-find-graphvizs-executables-in-windows-8

반응형