it-swarm.dev

błąd: nie można znaleźć vcvarsall.bat

Próbowałem zainstalować pakiet Pythona dulwich :

pip install dulwich

Ale dostaję tajemniczy komunikat o błędzie:

error: Unable to find vcvarsall.bat

To samo dzieje się, gdy próbuję ręcznie zainstalować pakiet:

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

Aktualizacja : Komentarze wskazują, że instrukcje tutaj mogą być niebezpieczne. Rozważ użycie wersji Visual C++ 2008 Express lub specjalnego kompilator Microsoft Visual C++ dla Pythona ( szczegóły ) i NIE używając oryginalnej odpowiedzi poniżej. Oryginalny komunikat o błędzie oznacza, że ​​wymagana wersja Visual C++ nie jest zainstalowana.


W przypadku instalacji w systemie Windows:

Podczas uruchamiania setup.py dla instalacji pakietów, Python 2.7 szuka zainstalowanego Visual Studio 2008. Możesz oszukać Pythona, aby używał nowszego Visual Studio, ustawiając poprawną ścieżkę w zmiennej środowiskowej VS90COMNTOOLS przed wywołaniem setup.py.

Wykonaj następujące polecenie na podstawie zainstalowanej wersji programu 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%

OSTRZEŻENIE: Jak zauważono poniżej, ta odpowiedź raczej nie zadziała, jeśli próbujesz skompilować moduły Pythona.

Zobacz Budowanie lxml dla Pythona 2.7 w systemie Windows po szczegóły.

680
fmuecke

Znalazłem rozwiązanie. Miałem dokładnie ten sam problem i błąd podczas instalowania „amara”. Zainstalowałem mingw32, ale trzeba było skonfigurować distutils.

  1. Mam już zainstalowany Python 2.6.
  2. Zainstalowałem mingw32 na C:\programs\mingw\
  3. Dodaj katalog bin mingw32 do zmiennej środowiskowej: dodaj c:\programs\MinGW\bin; do PATH
  4. Edytuj (utwórz jeśli nie istnieje) distutils.cfg plik znajdujący się pod C:\Python26\Lib\distutils\distutils.cfg:

    [build]
    compiler=mingw32
    
  5. Teraz uruchom easy_install.exe amara.

Upewnij się, że środowisko jest ustawione, otwierając nowy kod cmd.exe.

224
ninMonkey

Możesz zainstalować skompilowaną wersję od http://www.lfd.uci.edu/~gohlke/pythonlibs/

221
VolodymyrB

Jeśli chcesz skompilować z Visual Studio C++ zamiast mingw ...

  1. Uruchom python.exe, aby wyświetlić wersję VC++, z którą została skompilowana (przykład pokazano poniżej).

    ważne jest użycie odpowiedniej wersji kompilatora Visual C++, z którym skompilowano Python od distilutils = 's get_build_version zapobiega mieszaniu wersji ( na ostrzeżenie Piotra ).

    • Żółty (górny) to Python 2.7, skompilowany z MSC v.1500 (Visual Studio C++ 2008)
    • Czerwony (na dole) to Python 3.4.1, skompilowany z MSC v.1600 (Visual Studio C++ 2010)

    Example from the command line showing Python 2.7 compiled with MSC v.1500 and Python 3.4.1 compiled with MSC v.1600

  2. Skorzystaj z poniższej tabeli[1] aby dopasować wewnętrzną wersję VC++ do odpowiedniej wersji Visual Studio:

    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. Pobierz i zainstaluj odpowiednią wersję programu Visual Studio C++ z poprzedniego kroku.
    Dodatkowe uwagi do określonych wersji VC++ są wymienione poniżej.

    Uwagi do programu Visual Studio C++ 2008

    Tylko dla 32-bitowych kompilatorów pobierz Visual Studio C++ 2008 Express Edition .

    Dla 64-bitowych kompilatorów[2][3], pobierz Windows SDK dla Windows 7 i .NET Framework 3.5 SP1 .

    • Odznacz wszystko oprócz Developer Tools >> Visual C++ Compilers, aby zaoszczędzić czas i miejsce na dysku dzięki instalowaniu narzędzi SDK, których w innym przypadku nie potrzebujesz.

    Uwagi do programu Visual Studio C++ 2010

    Według Microsoft, jeśli zainstalowałeś Visual Studio 2010 SP1, mógł on usunąć kompilatory i biblioteki dla VC++.
    W takim przypadku pobierz aktualizacja kompilatora Visual C++ 2010 SP1 .

    Uwagi do programu Visual Studio C++ 2015

    Jeśli nie potrzebujesz Visual Studio IDE, pobierz Visual Studio C++ 2015 Build Tools .

    Uwagi do programu Visual Studio C++ 2017

    Jeśli nie potrzebujesz Visual Studio IDE, pobierz Build Tools for Visual Studio 2017 .

    Sugestia : Jeśli masz zarówno 32-, jak i 64-bitową instalację Python, możesz również użyć opcji virtualenv , aby utworzyć osobne środowiska Python, dzięki czemu możesz używać jednego lub drugiego na raz, bez bałagania się na ścieżce, aby wybrać, którą wersję Python należy użyć.

Zgodnie z @ srodriguex możesz pominąć ręczne ładowanie pliku wsadowego (kroki 4-6), kopiując zamiast tego kilka plików wsadowych do miejsca, w którym Python przeszukuje, wykonując - ta odpowiedź . Jeśli to nie zadziała, oto następujące kroki, które pierwotnie dla mnie zadziałały.

  1. Otwórz cmd.exe

  2. Zanim spróbujesz zainstalować coś, co wymaga rozszerzeń C, uruchom następujący plik wsadowy, aby załadować środowisko kompilatora VC++ do sesji (tj. Zmienne środowiskowe, ścieżka do kompilatora itp.).

    Wykonaj:

    • Kompilatory 32-bitowe:

      Uwaga : 32-bitowe instalacje systemu Windows będą miały tylko C:\Program Files\ zgodnie z oczekiwaniami

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

    • Kompilatory 64-bitowe:

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

      Uwaga : Tak, natywne 64-bitowe kompilatory znajdują się w Program Files (x86). Nie pytaj mnie dlaczego.
      Ponadto, jeśli zastanawiasz się, jaka jest różnica między vcvars64.bat a vcvarsx86_AMD64.bat lub, co ważniejsze, różnica między AMD64 a x86_AMD64, te pierwsze są rodzime 64-bitowe narzędzia kompilatora, a te ostatnie to 64-bitowe kompilatory krzyżowe, które można uruchomić w 32-bitowej instalacji systemu Windows.

    Aktualizacja:
    Jeśli z jakiegoś powodu otrzymujesz error: ... was unexpected at this time., gdzie ... to pewna seria znaków, musisz sprawdzić, czy zmienna ścieżki nie zawiera żadnych obcych znaków, takich jak dodatkowe cytaty lub zbłąkane postacie. Plik wsadowy nie będzie w stanie zaktualizować ścieżki sesji, jeśli w ogóle jej nie ma sensu.

  3. Jeśli wszystko poszło dobrze, powinieneś otrzymać jeden z następujących komunikatów w zależności od wersji VC++ i uruchomionej komendy:

    W przypadku 32-bitowych narzędzi kompilatora:
    Setting environment for using Microsoft Visual Studio 20xx x86 tools.

    W przypadku 64-bitowych narzędzi kompilatora:
    Setting environment for using Microsoft Visual Studio 20xx x64 tools.

  4. Teraz uruchom instalację za pomocą python setup.py install lub pip install pkg-name

  5. Miejcie nadzieję i trzymajcie kciuki, że planety są prawidłowo ustawione, aby VC++ mogło współpracować.

157
Josh Bowden

Co się dzieje? Moduły Pythona mogą być część napisana w C lub C++ (zazwyczaj dla szybkości). Jeśli spróbujesz zainstalować taki pakiet za pomocą Pip (lub setup.py), musi skompilować ten C/C++ ze źródła. Poza tym Pip będzie bezczelnie zakładał, że masz zainstalowany kompilator Microsoft Visual C++. Jeśli go nie masz, zobaczysz ten tajemniczy komunikat o błędzie „Błąd: nie można znaleźć vcvarsall.bat”.

Zalecanym rozwiązaniem jest zainstalowanie kompilatora C/C++, albo Microsoft Visual C++, albo MinGW (projekt open-source). Jednak instalacja i konfiguracja jest niezwykle trudna. (Edytuj 2014: Microsoft opublikował specjalny kompilator C++ dla Pythona 2.7)

Najłatwiejszym rozwiązaniem jest użycie instalatorów Windows Christopha Gohlke (.msi) dla popularnych pakietów Pythona. Buduje instalatory dla Pythona 2.x i 3.x, 32-bitowego i 64-bitowego. Możesz je pobrać z http://www.lfd.uci.edu/~gohlke/pythonlibs/


Jeśli również uważasz, że „Błąd: nie można znaleźć vcvarsall.bat” jest śmiesznie tajemniczą i nieprzydatną wiadomością, skomentuj błąd na http://bugs.python.org/issue294 , aby go zastąpić z bardziej pomocną i przyjazną dla użytkownika wiadomością.

Dla porównania Ruby jest dostarczany z menedżerem pakietów Gem i oferuje quasi-oficjalny kompilator C/C++, DevKit. Jeśli spróbujesz zainstalować pakiet bez niego, zobaczysz tę przydatną, użyteczną użyteczną wiadomość:

Zaktualizuj PATH, aby zawierała narzędzia do budowania lub pobierz DevKit z http://rubyinstaller.org/downloads i postępuj zgodnie z instrukcjami na http://github.com/oneclick/rubyinstaller/ wiki/Development-Kit

Możesz przeczytać dłuższy komentarz na temat pakowania Pythona na https://stackoverflow.com/a/13445719/284795

71
Colonel Panic

Musisz zainstalować kompilator Microsoft, zgodny z kompilatorem używanym do budowania Pythona. Oznacza to, że potrzebujesz Visual C++ 2008 (lub nowszego, z trochę tweaking ).

Microsoft dostarcza teraz dołączony kompilator i nagłówki tylko , aby móc kompilować rozszerzenia Pythona, na pamiętnym adresie URL:

Kompilator Microsoft Visual C++ dla Pythona 2.7

http://aka.ms/vcpython27

Jest to stosunkowo niewielka paczka; 85 MB do pobrania, można zainstalować bez uprawnień administratora, nie jest wymagane ponowne uruchomienie. Nazwa jest trochę myląca, kompilator będzie działał dla każdej wersji Pythona skompilowanej pierwotnie z Visual C++ 2008, a nie tylko Pythona 2.7.

Jeśli uruchomisz interaktywny monit Pythona lub wydrukujesz sys.version, poszukaj łańcucha wersji MSCname__; jeśli jest to MSC v.1500, możesz użyć tego narzędzia.

Od oryginalne ogłoszenie do listy distutils :

Firma Microsoft wydała pakiet kompilatora dla Pythona 2.7, aby ułatwić ludziom tworzenie i rozpowszechnianie modułów rozszerzeń C w systemie Windows. Kompilator Microsoft Visual C++ dla Pythona 2.7 (a.k.a. VC9) jest dostępny pod adresem: http://aka.ms/vcpython27

Ten pakiet zawiera wszystkie narzędzia i nagłówki wymagane do zbudowania modułów rozszerzeń C dla 32-bitowego i 64-bitowego Pythona 2.7 (zwróć uwagę, że niektóre moduły rozszerzeń wymagają niezależnych zależności, takich jak OpenSSL lub libxml2, które nie są dołączone). Obsługiwane są również inne wersje Pythona zbudowane z Visual C++ 2008, więc „Python 2.7” jest tylko reklamą - będzie działać dobrze z 2.6 i 3.2.

Zauważ, że musisz mieć setuptools6.0 lub nowszy zainstalowany (wymieniony w wymaganiach systemowych na stronie pobierania). Projekt, który instalujesz, musi używać funkcji setuptools.setup(), a nie distutilslub automatyczne wykrywanie nie będzie działać.

Firma Microsoft oświadczyła, że ​​chce zachować stabilny adres URL, aby zautomatyzowane skrypty mogły się do niego łatwo odwoływać.

63
Martijn Pieters

Właśnie miałem ten sam problem, więc opowiem tutaj moją historię, mając nadzieję, że pomoże to komuś innemu w tych samych sprawach i zaoszczędzi im kilka godzin, które właśnie spędziłem:

Mam mingw (g ++ (GCC) 4.6.1) i python 2.7.3 w oknie Windows 7 i próbuję zainstalować PyCrypto.

Wszystko zaczęło się od tego błędu podczas uruchamiania instalacji setup.py:

error: Unable to find vcvarsall.bat

Łatwo rozwiązany po wyszukaniu błędu przez określenie mingw jako kompilatora wyboru:

setup.py install build --compiler=mingw32

Problem polega na tym, że dostałem inny błąd:

configure: error: cannot run C compiled programs.

Okazuje się, że mój antywirus blokował wykonanie świeżo skompilowanego pliku .exe. Właśnie wyłączyłem „rezydentną osłonę” antywirusową i przeszedłem do następnego błędu:

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

Rozwiązało to: „Albo zainstaluj nieco starszą wersję MinGW, albo edytuj distutils cygwinccompiler.py w swoim katalogu Pythona, aby usunąć wszystkie wystąpienia -mno-cygwin”. (od tutaj )

Teraz mogę wreszcie zacząć pracować.

54
fpessoa

Wygląda na to, że szuka kompilatorów VC, więc możesz spróbować podać typ kompilatora za pomocą -c mingw32, ponieważ masz msys

python setup.py install -c mingw32
23
YOU

Mam python 2.73 i windows 7. Rozwiązanie, które działało dla mnie było:

  1. Dodano katalog bin mingw32 do zmiennej środowiskowej: append PATH z C:\programs\mingw\bin;
  2. Utworzono distutils.cfg znajdujący się w C:\Python27\Lib\distutils\distutils.cfg zawierający:

    [build]
    compiler=mingw32
    

Aby poradzić sobie z MinGW, który nie rozpoznaje już flagi -mno-cygwin, usuń flagę w C: Python27 Lib wyłącza cygwincompiler.py linia 322 do 326, więc wygląda to tak:

  self.set_executables(compiler='gcc -O -Wall',
                         compiler_so='gcc -mdll -O -Wall',
                         compiler_cxx='g++ -O -Wall',
                         linker_exe='gcc',
                         linker_so='%s %s %s'
                                    % (self.linker_dll, shared_option,
                                       entry_point))
20
user61629

Zajrzyj do pliku setup.py pakietu, który próbujesz zainstalować. Jeśli jest to starszy pakiet, może to być funkcja distutils.core.setup(), a nie setuptools.setup().

Wpadłem na to (w 2015 r.) Z kombinacją tych czynników:

  1. Kompilator Microsoft Visual C++ dla Pythona 2.7 od http://aka.ms/vcpython27

  2. Starszy pakiet używający funkcji distutils.core.setup()

  3. Próbuję zrobić python setup.py build zamiast używać pipname__.

Jeśli używasz najnowszej wersji pip, zmusi ona (monkeypatch) pakiet do użycia setuptools, nawet jeśli jego setup.py wymaga distutils. Jeśli jednak nie używasz pip, a zamiast tego używasz tylko python setup.py build, proces budowania użyje funkcji distutils.core.setup(), która nie wie o lokalizacji instalacji kompilatora.


Rozwiązanie

Krok 1: Otwórz odpowiedni wiersz poleceń Visual C++ 2008

Otwórz menu Start lub ekran startowy i wyszukaj „32-bitowy wiersz poleceń Visual C++ 2008” (jeśli python jest 32-bitowy) lub „64-bitowy wiersz polecenia Visual C++ 2008” (jeśli python jest 64-bitowy) . Uruchom. Polecenie Monituj powinno powiedzieć Visual C++ 2008 ... na pasku tytułu.

Krok 2: Ustaw zmienne środowiskowe

Ustaw te zmienne środowiskowe w poleceniu Wiersz, który właśnie został otwarty.

SET DISTUTILS_USE_SDK=1
SET MSSdk=1

Odniesienie http://bugs.python.org/issue23246

Krok 3: Zbuduj i zainstaluj

cddo pakietu, który chcesz zbudować, i uruchom python setup.py build, a następnie python setup.py install. Jeśli chcesz zainstalować w virtualenv, aktywuj go przed budowaniem.

16
Christian Long

Może ktoś może być zainteresowany, dla mnie działał pakiet py2exe. (Mam Windows 7 64 bit i przenośny python 2.7, Visual Studio 2005 Express z Windows SDK dla Windows 7 i .NET Framework 4)

set VS90COMNTOOLS=%VS80COMNTOOLS%

następnie:

python.exe setup.py install
9
Stefano Fenu

Spędziłem prawie 2 dni zastanawiając się, jak rozwiązać ten problem w mojej 64-bitowej wersji Pythona 3.4: Python 3.4.3 (v3.4.3: 9b73f1c3e601, 24 lutego 2015, 22:44:40) [MSC v.1600 64 bit (AMD64 )] na win32

Rozwiązanie 1, trudne: (przed przeczytaniem tego przeczytaj pierwsze Rozwiązanie 2 poniżej). W końcu to pomogło mi:

  1. install Visual C++ 2010 Express
  2. zainstaluj Microsoft Windows SDK v7.1 dla Windows 7
  3. utwórz ręcznie plik vcvars64.bat w C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64, który zawiera kod CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 lub inną ścieżkę w zależności od tego, gdzie masz zainstalowany
  4. (to wydaje się opcjonalne) zainstaluj Microsoft Visual Studio 2010 Service Pack 1 razem z Microsoft Visual C++ 2010 Service Pack 1 Aktualizacja kompilatora dla Windows SDK 7.1
  5. po tym spróbowałem pip install numpy, ale otrzymałem następujący błąd:

    File "numpy\core\setup.py", line 686, in get_mathlib_info
    raise RuntimeError("Broken toolchain: cannot link a simple C program")
    RuntimeError: Broken toolchain: cannot link a simple C program
    

    Zmieniłem mfinfo na None w C:\Python34\Lib\distutils\msvc9compiler.py na to https://stackoverflow.com/a/23099820/4383472

  6. wreszcie po poleceniu pip install numpy mój program antywirusowy avast próbował zakłócać proces instalacji, ale szybko go wyłączyłem

Trwało to bardzo długo - kilka minut na skompilowanie numpy, myślałem nawet, że wystąpił błąd, ale w końcu wszystko było w porządku.

Rozwiązanie 2, łatwe: (Wiem, że to podejście zostało już wspomniane w bardzo głosowanym odpowiedzi , ale pozwól mi powtórzyć od to naprawdę jest łatwiejsze) Po przejściu całej tej pracy zrozumiałem, że najlepszym sposobem jest dla mnie użycie już skompilowanych binariów z http://www.lfd.uci.edu/~gohlke/pythonlibs/ w przyszłości. Istnieje bardzo mała szansa, że ​​kiedykolwiek będę potrzebował jakiegoś pakietu (lub wersji pakietu), którego ta strona nie zawiera. Proces instalacji jest również znacznie szybszy w ten sposób. Na przykład, aby zainstalować numpy:

  1. donwload numpy‑1.9.2+mkl‑cp34‑none‑win_AMD64.whl (jeśli masz 64-bitowy Python 3.4) z tej witryny
  2. w wierszu polecenia lub PowerShell zainstaluj go za pomocą pip pip install numpy‑1.9.2+mkl‑cp34‑none‑win_AMD64.whl (lub pełnej ścieżki do pliku w zależności od sposobu otwarcia polecenia Command)
8
Bad

Problem ten wystąpił, gdy próbowałem zainstalować bibliotekę numpy na moim pythonie 3.5. Rozwiązaniem jest zainstalowanie VS2015. Miałem VS2008, 2012, 2013, z których żaden nie jest kompatybilny z pythonem 3.5. Najwyraźniej nowsza wersja Pythona jest zależna od nowszych wersji VS.

Upewnij się również, że C++ Common Tools są zainstalowane z Visual Studio.

enter image description here

7
D.G.

Chciałem uruchomić pysph na Windows 10 w Pythonie 2.7 i nie znaleziono vcvarsall.bat (z distutils)

Moje rozwiązanie było następujące:

Zainstaluj Microsoft Visual C++ dla Pythona 2.7 (jak sugerowano @Michael)

W systemie Windows 10 został zainstalowany w (moja nazwa użytkownika to Andreas):

C:\Users\Andreas\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0

Ustaw zmienną środowiskową VS90COMNTOOLS na ścieżkę instalacyjną Visual C++ dla Pythona 2.7 (patrz powyższa ścieżka).

Jeśli nadal nie działa, zmodyfikuj moduł

C:/Python27/lib/distutils

plik msvc9compiler.py. Znajdź w nim funkcję find_vcvarsall i wykonaj następującą modyfikację.

Zastąp linię:

productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC")

z

productdir = os.path.join(toolsdir)

Tutaj znajduje się vcvarsall.bat w moim przypadku (check, gdzie vcvarsall.bat jest w twojej instalacji).

7
chiefenne

Możesz pobrać bezpłatną wersję Visual C++ 2008 Express Edition z http://go.Microsoft.com/?linkid=7729279 , która ustawi zmienną środowiskową VS90COMNTOOLS podczas instalacji i dlatego zbuduje kompatybilny kompilator.

Jak @PiotrDobrogost wspomniał w komentarzu, jego odpowiedź na to inne pytanie dotyczy szczegółów, dlaczego Visual C++ 2008 jest właściwym rozwiązaniem, ale może się to zmienić, ponieważ kompilacja Pythona w systemie Windows przenosi się do nowszych wersji Visual Studio: - Budowanie lxml dla Pythona 2.7 w systemie Windows

6
Eric Smith

Wypróbowałem wszystkie powyższe odpowiedzi i stwierdziłem, że wszystkie nie działają, być może korzystałem z systemu Windows 8 i zainstalowałem Visual Studio 2012. W tym przypadku to właśnie robisz.

Plik vcvarsall.bat znajduje się tutaj: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC

Po prostu wybierz plik i skopiuj go.

Następnie przejdź do tego katalogu: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools

i wklej plik. A potem wszystko powinno być dobrze.

6
Games Brainiac

Miałem ten problem używając Pythona 3.4.1 w Windows 7 x64 i niestety pakiety, których potrzebowałem, nie miały odpowiedniego exe ani kółek, które mógłbym użyć . Ten system wymaga kilku „obejść” opisanych poniżej (i TLDR na dole ).

Korzystając z informacji w odpowiedź Jaxrtecha powyżej , zdecydowałem, że potrzebuję Visual Studio C++ 2010 (sys.version return MSC v.1600), więc zainstalowałem Visual C++ 2010 Express z linku w swojej odpowiedzi, która jest http://go.Microsoft.com/?linkid=9709949 . Zainstalowałem wszystko z aktualizacjami, ale jak możesz przeczytać poniżej, był to błąd. W tej chwili powinna być zainstalowana tylko oryginalna wersja Express (bez aktualizacji).

vcvarsall.bat był teraz obecny, ale pojawił się nowy błąd podczas instalacji pakietu, query_vcvarsall raise ValueError(str(list(result.keys())))ValueError: [u'path']. Istnieją inne pytania dotyczące przepływu stosu z tym błędem, takie jak Błędy podczas tworzenia/instalowania modułu C dla Pythona 2.7

Na podstawie tej odpowiedzi ustaliłem, że 2010 Express instaluje tylko kompilatory 32-bitowe. Aby uzyskać kompilatory 64-bitowe (i inne), musisz zainstalować Windows 7.1 SDK. Zobacz http://msdn.Microsoft.com/en-us/windowsserver/bb980924.aspx

Nie zainstalowałoby się to jednak dla mnie, a instalator zwrócił błąd installation failed with return code 5100. Znalazłem rozwiązanie pod następującym linkiem: http://support.Microsoft.com/kb/2717426 . Krótko mówiąc, jeśli są zainstalowane nowsze wersje redystrybucyjnych programów Microsoft Visual C++ 2010 x86 i x64, kolidują one z tymi w instalatorze SDK i najpierw wymagają odinstalowania.

SDK został następnie zainstalowany, ale zauważyłem, że vcvars64.bat nadal nie istnieje w C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin, ani jego podfolderach. vcvarsall.bat uruchamia plik wsadowy vcvars64, więc bez niego pakiet Pythona nadal nie może się zainstalować (zapomniałem o błędzie, który został wyświetlony w tym momencie).

Następnie znalazłem tutaj kilka instrukcji: http://www.cryptohaze.com/wiki/index.php/Windows_7_Build_Setup#Download_VS_2010_and_Windows_SDK_7.1 Zgodnie z instrukcjami zainstalowałem już Express i 7.1 SDK, tak zainstalowany SDK 7.1 SP1 i poprawiono brakujący plik nagłówkowy. Następnie ręcznie stworzyłem vcvars64.bat z treścią CALL setenv /x64. Tutaj wkleję wszystkie te instrukcje, żeby się nie zgubiły.

Krok 1 to pobranie Visual Studio Express 2010.

http://www.Microsoft.com/visualstudio/en-us/products/2010-editions/express jest dobrym miejscem do rozpoczęcia. Pobierz instalator i uruchom go (vc_web.exe). Nie potrzebujesz dodatkowego pobierania SQL 2008.

Potrzebny będzie także zestaw Windows SDK (obecnie 7.1) dla kompilatorów 64-bitowych - chyba że chcesz tworzyć kompilacje tylko 32-bitowe, które nie są w pełni obsługiwane ...

http://www.Microsoft.com/en-us/download/details.aspx?id=8279 jest dobrym punktem wyjścia do pobrania - będziesz chciał uruchomić plik winsdk_web.exe po pobraniu !

Domyślna instalacja tutaj jest w porządku.

Na koniec pobierz i zainstaluj aktualizację Windows SDK 7.1 SP1: http://www.Microsoft.com/en-us/download/details.aspx?id=4422

I, aby naprawić brakujący plik nagłówkowy, VS2010 SP1. http://www.Microsoft.com/downloads/en/confirmation.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5

I, do cholery, napraw brakujący plik wsadowy dla VS2010 Express. To staje się wręcz absurdalne.

W C: Program Files (x86) Microsoft Visual Studio 10.0 VC bin AMD64, utwórz „vcvars64.bat” w następujący sposób (będziesz musiał działać jako administrator):

CALL setenv/x64

Mój pakiet Pythona nadal nie został zainstalowany (nie można przywrócić błędu). Następnie znalazłem kilka instrukcji (skopiowanych poniżej), aby użyć specjalnego wiersza poleceń SDK 7.1, patrz: https://mail.python.org/pipermail/distutils-sig/2012-Feb February/018300.html

Nieważne to pytanie. Ktoś tutaj zauważył ten element w menu: Start-> Wszystkie programy-> Microsoft Windows SDK v7.1 -> Windows SDK 7.1 Wiersz polecenia

To uruchamia zadanie wsadowe, które wydaje się konfigurować środowisko pracy dla kompilatora. Z tego Monitu możesz wpisać „setup.py build” lub „setup.py install”.

Otworzyłem wiersz poleceń systemu Windows SDK 7.1 zgodnie z instrukcją i użyłem go do uruchomienia easy_install w pakiecie Pythona. I wreszcie sukces!


TLDR;

  1. Zainstaluj Visual Studio Express 2010 (najlepiej bez zaktualizowanych składników redystrybucyjnych lub serwera SQL).
  2. Zainstaluj zestaw SDK systemu Windows 7.1
  3. Instaluj aktualizację SDK 7.1 SP1 i popraw plik nagłówkowy VS2010 SP1 (ten krok może nie być wymagany).
  4. Ręcznie utwórz C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64\vcvars64.bat z treścią CALL setenv /x64
  5. Start-> Wszystkie programy-> Microsoft Windows SDK v7.1 -> Windows SDK 7.1 Wiersz polecenia, aby otworzyć specjalne polecenie x64 Wiersz polecenia, który może być następnie użyty w python/easy_install/pip/etc (w tym w virtual_envs).
6
neRok

Najprostszym sposobem rozwiązania tego problemu w 2016 r. Jest zainstalowanie Chocolatey, a następnie pakietu vcpython27. Otwórz Powershell:

> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
> choco install python2 -y
> choco install vcpython27 -y
3
Chris S

Czy kompilator Microsoft Visual C++ dla Pythona 2.7 na http://www.Microsoft.com/en-us/download/details.aspx?id=44266 nie jest rozwiązaniem?

3
Michael

Poniższe kroki rozwiązały ten problem dla mnie, próbowałem utworzyć konfigurację z rozszerzeniem cython.

  1. Zainstaluj kompilator Microsoft Visual C++ dla Pythona 2.7
  2. Domyślna lokalizacja instalacji to @ C: Użytkownicy Użytkownik PC AppData Programy lokalne Common Microsoft Visual C++ dla Pythona Może to naprawić problem, przetestować raz przed kontynuowaniem.
  3. Jeśli się nie powiedzie, sprawdź, gdzie znajduje się plik VC++ dla pliku python vcvarsall.bat
  4. Otwórz plik msvc9compiler.py pakietu distutils w notatniku.
  5. W moim polu było @ C: Anaconda2 Lib distils msvc9compiler.py find_vcvarsall działa w tym pliku, określa wersję VC przez wydrukowanie argumentu wersji. Dla Pythona 2.7 prawdopodobnie będzie 9,0
  6. Teraz utwórz zmienną środowiskową VS90COMNTOOLS, wskazując na C: Użytkownicy Użytkownik PC AppData Programy lokalne Common Microsoft Visual C++ dla Pythona 9.0 VC bin
  7. Z jakiegoś powodu distutils oczekuje, że plik vcvarsall.bat znajdzie się w obrębie VC dir, ale VC++ dla narzędzi Pythona ma go w katalogu głównym 9.0 Aby to naprawić, usuń „VC” ze ścieżki.join (mniej więcej w około linia 247)

    #productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC") productdir = os.path.join(toolsdir, os.pardir, os.pardir)

Powyższe kroki rozwiązały problem dla mnie.

3
Riyas Deen

Próbowałem wielu rozwiązań, ale tylko jeden działał dla mnie, instalacja Microsoft Visual Studio 2008 Express C++.

Mam ten problem z modułem Python 2.7 napisanym w C (yEnc, który ma inne problemy z MS VS). Zauważ, że Python 2.7 jest zbudowany z wersją MS VS 2008, a nie 2010!

Pomimo faktu, że jest darmowy, trudno jest go znaleźć, ponieważ MS promuje VS 2010. Mimo to, oficjalne, bezpośrednie linki MSDN nadal działają: sprawdź https://stackoverflow.com/a/15319069/2227298 dla linków do pobierania.

3
KrisWebDev

Jeśli masz zainstalowany mingw

pip install --global-option build_ext --global-option --compiler=mingw32 packagename

działa, zmuszając pip do budowania za pomocą kompilatora mingw zamiast Microsoftu. Zobacz tutaj https://github.com/pypa/pip/issues/18 po szczegóły (ostatni post).

3
Nicolas78

Mam ten sam problem i rozwiązałem go w tej chwili.

„Google” powiedziało mi, że muszę zainstalować „Kompilator Microsoft Visual C++ dla Pythona 2.7”. Instaluję nie tylko narzędzie, ale także Visual C++ 2008 Reditributable, ale to nie pomogło. Następnie próbowałem zainstalować Visual C++ 2008 Express Edition. A problem zniknął!

Spróbuj zainstalować Visual C++ 2008 Express Edition!

2
Vova

Nie wiem, czy jest za późno, ale znalazłem kompilator Microsoft Visual C++ dla Pythona 2.7 który czyta

Typowy komunikat o błędzie, który otrzymasz, jeśli potrzebujesz tego kompilatora to Nie można znaleźć vcvarsall.bat

Mam nadzieję że to pomoże!

2
mkamioner

W Pythonie 3.4 zależność jest w Visual Studio 2010. Instalowanie Visual C++ 2010 Express rozwiązało problem.

Próbowałem użyć instalacji VS 2008 lub 2013, których nie udało mi się znaleźć.

1
gmjonker

Miałem ten sam błąd (który uważam za głupi i niezbyt pomocny jako komunikaty o błędach) i nadal miałem problemy, mimo że dostępny jest kompilator C.

Zaskakujące, co skończyło się dla mnie, było po prostu aktualizacja pip i setuptools do najnowszej wersji. Mam nadzieję, że to pomoże komuś innemu.

1
cbrendanprice

Odpowiedź podana przez @monkey jest jedną z poprawnych, ale jest niekompletna.

W przypadku, gdy chcesz użyć MinGW , powinieneś wybrać C, C++ oraz inne narzędzia programistyczne sugerowane podczas procesu instalacji MinGW, aby uzyskać także „make.exe”.

Musisz także mieć ścieżkę ustawioną na make.exe w env.

Aby uzupełnić swoją odpowiedź, oto kroki:

  1. Dodaj katalog bin mingw32 do zmiennych środowiskowych
  2. Dołącz C:\Programs\MinGW\bin;C:\Programs\MinGW\msys\1.0\bin; do PATH
  3. Edytuj (utwórz, jeśli nie istnieje) plik distutils.cfg znajdujący się pod adresem C:\Python26\Lib\distutils\distutils.cfg, aby:

    [build]
    compiler=mingw32
    

Upewnij się, że zmienne środowiskowe są ustawione, otwierając nowy plik cmd.exe.

1
Olivier N

wywołanie import setuptools spowoduje, że łatka małpuje zniekształcanie, aby wymusić zgodność z Visual Studio. Ręczne wywołanie vcvars32.bat spowoduje ustawienie środowiska wirtualnego i zapobiegnie innym typowym błędom, które kompilator rzuci. Plik znajduje się pod adresem

„C: Program Files (x86) Microsoft Visual Studio 2017 Społeczność VC Pomocniczy dodatek vcvars32.bat”

dla VS 2017.

1
user2682863

Zainstaluj Visual Studio 2015 Community Edition z https://www.visualstudio.com , a następnie

dla Pythona 3.4

set VS100COMNTOOLS=%VS140COMNTOOLS% && pip install XX

1
Sergey11g

Wyczerpująca lista wersji MS VС ++ i odmian instalacji oficjalnie obsługiwanych przez distutilsname __ (a niektóre przez setuptoolsname__) i jak ich używać można znaleźć pod adresem

https://wiki.python.org/moin/WindowsCompilers

Określa również, która wersja VC++ jest wymagana dla którego oficjalnego wydania Win32 Python. Zauważ, że MinGW nie jest oficjalnie obsługiwane (szczegóły poniżej).

W skrócie:

  • Dla każdego wydania dostępna jest specyficzna wersja programu Visual Studio, która działa od razu po zainstalowaniu.
  • W przypadku samodzielnych zestawów SDK generalnie wymagane jest uruchomienie instalacji z polecenia SDK (= ustaw zmienne środowiskowe).
    • Dla niektórych ten wymóg może zostać zniesiony przez jednorazowe ulepszenie, które nie ma przeciwnych skutków ubocznych
  • Niektóre niezwykłe wersje VC++ są obsługiwane przez setuptoolsi nie distutilsname__.
  • Mówi się, że MinGW „działa”, ale tylko dla x86. - https://bugs.python.org/issue4709 mówi, że problemy z jego obsługą leżą w samym MinGW i nawet x86 ma problemy z Pythonem 3.5.
1
ivan_pozdeev

Możesz użyć easy_install zamiast pip, który działa dla mnie.

1
Abdul Majeed

najszybsze rozwiązanie :

Jeśli masz python 3.4.x , rozwiązaniem jest po prostu zainstalowanie VC++ 2010, ponieważ jest ono używane do kompilacji.

https://www.visualstudio.com/en-us/downloads#d-2010-express

moja wersja Pythona to MSC v.1600 32 bit (intel)] na win32

działało dobrze na Windows8

1
DmitrySemenov

Jeśli chcesz zainstalować pyodbc na pudełku z Windows, które nie nie zainstalowało Visual Studio innej opcji, to ręcznie zainstalować pyodbc przy użyciu dystrybucji binarnej.

Jest to szczególnie przydatne, jeśli nie masz uprawnień administratora na komputerze, z którym pracujesz i próbujesz skonfigurować virtualenv .

Kroki:

  1. Pobierz najnowszy instalator Windows z tutaj (pyodbc-X.X.X.win-Y-py2.7.exe)
  2. Otwórz plik wykonywalny instalatora za pomocą 7-Zip (lub WinRAR lub dowolnego innego)
  3. Uzyskaj pyodbc.pyd i pyodbc-X.X.X-py2.7.Egg-info i umieść je w [python installation directory or virtualenv]\Lib\site-packages
  4. Nie ma kroku 4 :)
1
Dane B

Próbowałem wszystkich powyższych odpowiedzi, ale nie działał dla mnie. Używałem Windows 10 i zainstalowałem Visual Studio 2010 W moim przypadku trzeba dodać vcvars64.bat do C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64

poniżej jest vcvars64.bat:

CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64

Zainstaluj Microsoft SDK 7.1, jeśli nie zainstalujesz, i uruchom ponownie pip install dulwich

1
xavierzhao

Przejdź tutaj: http://docs.continuum.io/anaconda/install.html#windows-install

Istnieją instrukcje instalacji anacondy, która zapewni GUI i cichą instalację większości pakietów, które wydają się powodować ten problem z http://www.scipy.org/ . Jestem świadomy rozwiązania dla 2.7 tutaj https://www.Microsoft.com/en-us/download/details.aspx?id=44266 ale nie widziałem opcji dla Pythona 3.4. Po pobraniu i zainstalowaniu Anacondy powinieneś być w stanie importować większość pakietów, których potrzebujesz z Scipy.

Mam nadzieję, że to pomaga niektórym ludziom. Zabrał mi 45 minut przeczyszczania postów i witryn.

EDYCJA: Chciałem tylko zauważyć, że na stronie GUI obok symboli systemu operacyjnego znajduje się łącze Python34.

1
jakden

Miałem ten sam błąd, gdy próbowałem zainstalować pandy w systemie Windows 10. Po przeszukaniu kilku rozwiązań, skończyło się na użyciu koła.

Przede wszystkim zaktualizuj pip do najnowszej wersji:

easy_install install -U pip

Po drugie, zainstaluj koło:

pip install wheel

Po trzecie, pobierz plik whl dla swojego pakietu i zainstaluj go:

pip install [xxx].whl

Do tej pory wierzę, że wheel jest najlepszym sposobem na zainstalowanie pakietów Pythona w systemie Windows.

0
Andong Zhan

http://www.stickpeople.com/projects/python/win-psycopg/

Zainstalowanie odpowiedniego pliku z powyższego linku naprawiło mój problem.

Wzmianka: Jason Erickson [[email protected]]. Zarządza tą stroną dość dobrze dla użytkowników Windows.

0
Rahul Bali

Postępowałem zgodnie z instrukcjami http://springflex.blogspot.ru/2014/02/how-to-fix-valueerror-when-trying-to.html . ale nic się nie stało. Następnie zainstalowałem 2010 Visual Studio Express ( http://www.Microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express ) zgodnie z zaleceniami http://blog.python.org/2012/05/recent-windows-changes-in-python-33.html to mi pomogło

0
Francuz