[python] 오류 : vcvarsall.bat를 찾을 수 없습니다

파이썬 패키지 dulwich 를 설치하려고했습니다 .

pip install dulwich

그러나 암호 오류 메시지가 나타납니다.

error: Unable to find vcvarsall.bat

패키지를 수동으로 설치하려고해도 마찬가지입니다.

> python setup.py install
running build_ext
building 'dulwich._objects' extension
error: Unable to find vcvarsall.bat



답변

업데이트 : 의견에 따르면 여기의 지침은 위험 할 수 있습니다. Visual C ++ 2008 Express Edition 또는 Python 용으로 특수 제작 된 Microsoft Visual C ++ 컴파일러 ( details )를 사용하고 아래의 원래 답변을 사용 하지 마십시오 . 원래 오류 메시지는 필요한 버전의 Visual C ++가 설치되지 않았 음을 의미합니다.


Windows 설치의 경우 :

패키지 설치를 위해 setup.py를 실행하는 동안 Python 2.7은 설치된 Visual Studio 2008을 검색합니다 .을 VS90COMNTOOLS호출하기 전에 환경 변수에 올바른 경로를 설정하여 최신 Visual Studio를 사용하도록 Python을 속일 수 있습니다 setup.py.

설치된 Visual Studio 버전에 따라 다음 명령을 실행하십시오.

  • Visual Studio 2010 (VS10) : SET VS90COMNTOOLS=%VS100COMNTOOLS%
  • Visual Studio 2012 (VS11) : SET VS90COMNTOOLS=%VS110COMNTOOLS%
  • Visual Studio 2013 (VS12) : SET VS90COMNTOOLS=%VS120COMNTOOLS%
  • Visual Studio 2015 (VS14) : SET VS90COMNTOOLS=%VS140COMNTOOLS%

경고 : 아래에서 언급했듯이 파이썬 모듈을 컴파일하려고하면이 답변이 작동하지 않을 수 있습니다.

자세한 내용 은 Windows 에서 Python 2.7 용 lxml 빌드 를 참조하십시오.


답변

해결책을 찾았습니다. ‘amara’를 설치하는 것과 똑같은 문제와 오류가 발생했습니다. mingw32를 설치했지만 distutils를 구성해야했습니다.

  1. 이미 설치된 Python 2.6이 있습니다.
  2. 나는 mingw32를 설치했다. C:\programs\mingw\
  3. 환경 변수에 mingw32의 bin 디렉토리를 추가 c:\programs\MinGW\bin;하십시오. PATH에 추가 하십시오.
  4. 다음 위치에있는 distutils.cfg 파일을 편집하십시오 (없는 경우 작성) C:\Python26\Lib\distutils\distutils.cfg.

    [build]
    compiler=mingw32
  5. 이제 실행하십시오 easy_install.exe amara.

새를 열어 환경이 설정되어 있는지 확인하십시오 cmd.exe.


답변

http://www.lfd.uci.edu/~gohlke/pythonlibs/ 에서 컴파일 된 버전을 설치할 수 있습니다 .


답변

mingw 대신 Visual Studio C ++로 컴파일하려면 …

  1. python.exe컴파일 된 VC ++ 버전을 표시하려면 실행하십시오 (아래 예 참조).

    이다 중요한 파이썬이 이후로 컴파일하는 비주얼 C ++ 컴파일러의 해당 버전을 사용하는 distilutilsget_build_version방지가 (버전을 혼합 표트르의 경고 당을 ).

    • 노란색 (위)은 Python 2.7이며 MSC v.1500 (Visual Studio C ++ 2008)으로 컴파일되었습니다.
    • 빨간색 (아래)은 Python 3.4.1이며 MSC v.1600 (Visual Studio C ++ 2010)으로 컴파일되었습니다.

    MSC v.1500으로 컴파일 된 Python 2.7 및 MSC v.1600으로 컴파일 된 Python 3.4.1을 보여주는 명령 줄의 예

  2. 내부 VC ++ 버전과 해당 Visual Studio 릴리스를 일치 시키려면 아래 표 [1] 을 사용하십시오 .

    MSC v.1000 -> Visual C++ 4.x
    MSC v.1100 -> Visual C++ 5
    MSC v.1200 -> Visual C++ 6
    MSC v.1300 -> Visual C++ .NET
    MSC v.1310 -> Visual C++ .NET 2003
    MSC v.1400 -> Visual C++ 2005  (8.0)
    MSC v.1500 -> Visual C++ 2008  (9.0)
    MSC v.1600 -> Visual C++ 2010 (10.0)
    MSC v.1700 -> Visual C++ 2012 (11.0)
    MSC v.1800 -> Visual C++ 2013 (12.0)
    MSC v.1900 -> Visual C++ 2015 (14.0)
    MSC v.1910 -> Visual C++ 2017 (15.0)
    MSC v.1911 -> Visual C++ 2017 (15.3)
    MSC v.1912 -> Visual C++ 2017 (15.5)
    MSC v.1913 -> Visual C++ 2017 (15.6)
    MSC v.1914 -> Visual C++ 2017 (15.7)
    MSC v.1915 -> Visual C++ 2017 (15.8)
    MSC v.1916 -> Visual C++ 2017 (15.9)   
  3. 이전 단계에서 해당 버전의 Visual Studio C ++를 다운로드하여 설치하십시오.
    특정 버전의 VC ++에 대한 추가 참고 사항이 아래에 나열되어 있습니다.

    Visual Studio C ++ 2008 참고 사항

    의 경우 에만 32 비트 컴파일러, 다운로드 비주얼 스튜디오 C ++ 2008 익스프레스 에디션 .

    64 비트 컴파일러 [2] [3]의 경우 Windows 7 및 .NET Framework 3.5 SP1 용 Windows SDK를 다운로드 하십시오 .

    • Developer Tools >> Visual C++ Compilers필요하지 않은 SDK 도구를 설치하여 시간과 디스크 공간을 절약하기 위해 모든 것을 선택 취소 하십시오.

    Visual Studio C ++ 2010에 대한 참고 사항

    Microsoft에 따르면 Visual Studio 2010 SP1을 설치 한 경우 VC ++ 용 컴파일러와 라이브러리가 제거되었을 수 있습니다.
    이 경우 Visual C ++ 2010 SP1 컴파일러 업데이트를 다운로드하십시오 .

    Visual Studio C ++ 2015에 대한 참고 사항

    Visual Studio IDE가 필요하지 않은 경우 Visual Studio C ++ 2015 빌드 도구를 다운로드 하십시오 .

    Visual Studio C ++ 2017에 대한 참고 사항

    Visual Studio IDE가 필요하지 않은 경우 Visual Studio 2017 용 빌드 도구를 다운로드 하십시오 .

    제안 : 32 비트 및 64 비트 Python 설치가 모두있는 경우 virtualenv 를 사용하여 별도의 Python 환경을 만들 수 있으므로 경로를 망설이지 않고 한 번에 하나씩 사용하여 Python 버전을 선택할 수 있습니다 사용하다.

@ srodriguex 에 따르면 , 이 대답 에 따라 파이썬이 검색하는 위치에 몇 개의 배치 파일을 복사하여 배치 파일을 수동으로로드하는 것을 건너 뛸 수 있습니다 (4-6 단계) . 그래도 문제가 해결되지 않으면 다음과 같은 단계가 처음에 효과가있었습니다.

  1. 열어 cmd.exe

  2. C 확장이 필요한 것을 설치 하기 전에 다음 배치 파일을 실행하여 VC ++ 컴파일러 환경을 세션에로드하십시오 (예 : 환경 변수, 컴파일러 경로 등).

    실행 :

    • 32 비트 컴파일러 :

      참고 : 32 비트 Windows 설치는 C:\Program Files\예상 대로만 수행됩니다.

      "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"

    • 64 비트 컴파일러 :

      "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars64.bat"

      참고 : 예, 기본 64 비트 컴파일러는에 Program Files (x86)있습니다. 이유를 묻지 마십시오.
      또한, 당신이 궁금해하는 경우 것 사이의 차이 vcvars64.batvcvarsx86_amd64.bat나 사이에 더 중요한 차이 amd64x86_amd64, 전 네이티브 64 비트 컴파일러 툴이며, 후자는 32 비트 Windows 설치에서 실행할 수있는 크로스 컴파일러를 64 비트입니다 .

    업데이트 :
    어떤 이유로 일련의 문자가 error: ... was unexpected at this time.있는 곳 을 얻는 ...다면 경로 변수에 여분의 따옴표 또는 길 잃은 문자와 같은 외래 문자가 없는지 확인해야합니다. 배치 파일이 세션 경로를 먼저 이해할 수 없으면 세션 경로를 업데이트 할 수 없습니다.

  3. 문제가 해결되지 않으면 VC ++ 버전과 실행 한 명령에 따라 다음 메시지 중 하나가 표시됩니다.

    32 비트 컴파일러 도구의 경우 :
    Setting environment for using Microsoft Visual Studio 20xx x86 tools.

    64 비트 컴파일러 도구의 경우 :
    Setting environment for using Microsoft Visual Studio 20xx x64 tools.

  4. 이제 ,를 통해 설치 프로그램을 실행 python setup.py install하거나pip install pkg-name

  5. VC ++가 협력하기 위해 행성이 올바르게 정렬되도록 손가락을 희망하고 교차하십시오.


답변

무슨 일이야? 파이썬 모듈은 C 또는 C ++로 작성 될 수 있습니다 (일반적으로 속도를 위해). Pip (또는 setup.py)으로 이러한 패키지를 설치하려고하면 소스에서 해당 C / C ++를 컴파일해야합니다. 기본적으로 Pip은 Microsoft Visual C ++ 컴파일러가 설치되어 있다고 생각합니다. 없는 경우이 오류 메시지 “오류 : vcvarsall.bat를 찾을 수 없습니다”가 표시됩니다.

규정 된 솔루션은 Microsoft Visual C ++ 또는 MinGW (오픈 소스 프로젝트) 인 C / C ++ 컴파일러를 설치하는 것 입니다. 그러나 설치 및 구성이 매우 어렵습니다. (편집 2014 : Microsoft는 Python 2.7 용 특수 C ++ 컴파일러 를 발표했습니다 )

가장 쉬운 해결책은 인기있는 Python 패키지에 Christoph Gohlke의 Windows 설치 프로그램 (.msi)을 사용하는 것입니다. 그는 Python 2.x 및 3.x, 32 비트 및 64 비트 용 설치 프로그램을 빌드합니다. http://www.lfd.uci.edu/~gohlke/pythonlibs/ 에서 다운로드 할 수 있습니다 .


“오류 : vcvarsall.bat를 찾을 수 없음”이 엄청나게 암호적이고 도움이되지 않는 메시지라고 생각하는 경우 http://bugs.python.org/issue2943 에서 버그에 댓글을 달아 보다 유용하고 사용자가 많은 사용자로 교체하십시오. 친절한 메시지.

Ruby는 패키지 관리자 Gem과 함께 제공되며 준공식 C / C ++ 컴파일러 인 DevKit을 제공합니다. 패키지없이 패키지를 설치하려고하면 다음과 같은 유용한 유용한 메시지가 표시됩니다.

빌드 도구를 포함하도록 PATH를 업데이트하거나 http://rubyinstaller.org/downloads 에서 DevKit을 다운로드하고 http://github.com/oneclick/rubyinstaller/wiki/Development-Kit 의 지침을 따르십시오

https://stackoverflow.com/a/13445719/284795 에서 Python 패키징에 대한 자세한 내용을 읽을 수 있습니다.


답변

Python을 빌드하는 데 사용되는 컴파일러와 호환되는 Microsoft 컴파일러를 설치해야합니다. 즉, Visual C ++ 2008 (또는 일부 조정 이 필요함)이 필요합니다 .

마이크로 소프트는 번들 컴파일러를 공급하고 헤더는 단지 기억에 남는 URL에서, 파이썬 확장을 컴파일 할 수 :

Python 2.7 용 Microsoft Visual C ++ 컴파일러

http://aka.ms/vcpython27

이것은 비교적 작은 패키지입니다. 85MB 다운로드, 관리자 권한없이 설치 가능, 재부팅 불필요 이름은 약간 오해의 소지가 있습니다. 컴파일러는 Python 2.7이 아니라 Visual C ++ 2008로 원래 컴파일 된 모든 Python 버전에서 작동합니다.

Python 대화식 프롬프트를 시작하거나 인쇄 sys.version하는 경우 MSC버전 문자열을 찾으십시오 . 그렇다면 MSC v.1500이 도구를 사용할 수 있습니다.

로부터 의 distutils 목록에 원래 발표 :

Microsoft는 사람들이 Windows에서 C 확장 모듈을보다 쉽게 ​​빌드하고 배포 할 수 있도록 Python 2.7 용 컴파일러 패키지를 출시했습니다. Python 2.7 용 Microsoft Visual C ++ 컴파일러 (일명 VC9)는 http://aka.ms/vcpython27 에서 구할 수 있습니다.

이 패키지에는 Python 2.7 32 비트 및 64 비트 용 C 확장 모듈을 빌드하는 데 필요한 모든 도구와 헤더가 포함되어 있습니다 (일부 확장 모듈에는 포함되지 않은 OpenSSL 또는 libxml2와 같은 타사 종속성이 필요함). Visual C ++ 2008로 작성된 다른 버전의 Python도 지원되므로 “Python 2.7″은 광고용입니다. 2.6 및 3.2에서 제대로 작동합니다.

당신이 필요합니다 setuptools6.0 이상이 설치 (다운로드 페이지의 시스템 요구 사항에 나열). 설치하려는 프로젝트가 setuptools.setup()아닌을 사용해야합니다 . 그렇지 않으면 distutils자동 감지가 작동하지 않습니다.

Microsoft는 자동화 된 스크립트가 쉽게 참조 할 수 있도록 URL을 안정적으로 유지하고 싶다고 말했습니다.


답변

방금이 같은 문제가 있었으므로 같은 문제를 가진 다른 사람에게 도움이되고 방금 보낸 두 시간을 절약하기를 바랍니다.

Windows 7 상자에 mingw (g ++ (GCC) 4.6.1)와 python 2.7.3이 있으며 PyCrypto를 설치하려고합니다.

setup.py 설치를 실행할 때이 오류로 시작되었습니다.

error: Unable to find vcvarsall.bat

mingw를 선택한 컴파일러로 지정하여 오류를 인터넷 검색 한 후 쉽게 해결됩니다.

setup.py install build --compiler=mingw32

문제는 다른 오류가 있다는 것입니다.

configure: error: cannot run C compiled programs.

내 바이러스 백신이 새로 컴파일 된 .exe의 실행을 차단하고있는 것으로 나타났습니다. 방금 바이러스 백신 “주민 보호막”을 비활성화하고 다음 오류로 넘어갔습니다.

cc1.exe: error: unrecognized command line option '-mno-cygwin'
error: command 'gcc' failed with exit status 1

이 문제를 해결했습니다. “조금 더 오래된 MinGW 버전을 설치하거나 Python 디렉토리에서 distutils \ cygwinccompiler.py를 편집하여 -mno-cygwin의 모든 인스턴스를 제거하십시오.” ( 여기에서 )

이제 마침내 일을 시작할 수 있습니다.