J'ai essayé d'installer le package Python dulwich :
pip install dulwich
Mais je reçois un message d'erreur cryptique:
error: Unable to find vcvarsall.bat
La même chose se produit si j'essaye d'installer le paquet manuellement:
> python setup.py install
running build_ext
building 'dulwich._objects' extension
error: Unable to find vcvarsall.bat
Mise à jour : Les commentaires précisent que les instructions fournies ici peuvent être dangereuses. Pensez à utiliser l'édition Visual C++ 2008 Express ou le compilateur spécialement conçu compilateur Microsoft Visual C++ pour Python ( détails ) et NOT en utilisant la réponse originale ci-dessous. Le message d'erreur d'origine signifie que la version requise de Visual C++ n'est pas installée.
Pour les installations Windows:
Lors de l'exécution de setup.py pour l'installation de packages, Python 2.7 recherche Visual Studio 2008 installé. Vous pouvez tromper Python pour utiliser un Visual Studio plus récent en définissant le chemin correct dans VS90COMNTOOLS
variable d’environnement avant d’appeler setup.py
.
Exécutez la commande suivante en fonction de la version de Visual Studio installée:
SET VS90COMNTOOLS=%VS100COMNTOOLS%
SET VS90COMNTOOLS=%VS110COMNTOOLS%
SET VS90COMNTOOLS=%VS120COMNTOOLS%
SET VS90COMNTOOLS=%VS140COMNTOOLS%
AVERTISSEMENT: comme indiqué ci-dessous, il est peu probable que cette réponse fonctionne si vous essayez de compiler des modules python.
Voir Construction de lxml pour Python 2.7 sous Windows pour plus de détails.
J'ai trouvé la solution. J'ai eu exactement le même problème, et l'erreur, en installant 'Amara'. J'avais mingw32 installé, mais distutils devait être configuré.
C:\programs\mingw\
c:\programs\MinGW\bin;
à CHEMINEditer (créer si non existant) distutils.cfg fichier situé à C:\Python26\Lib\distutils\distutils.cfg
pour être:
[build]
compiler=mingw32
Maintenant, lancez easy_install.exe amara
.
Assurez-vous que l'environnement est défini en ouvrant un nouveau cmd.exe
.
Vous pouvez installer la version compilée à partir de http://www.lfd.uci.edu/~gohlke/pythonlibs/
Exécutez python.exe
pour afficher la version de VC++ avec laquelle il a été compilé (exemple ci-dessous).
Il est important d'utiliser la version correspondante du compilateur Visual C++ avec lequel Python a été compilé avec puisque distilutils Le
get_build_version
de = empêche le mélange des versions ( selon l'avertissement de Piotr ).
Utilisez le tableau ci-dessous[1] pour faire correspondre la version interne de VC++ à la version correspondante de 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)
Téléchargez et installez la version correspondante de Visual Studio C++ à partir de l'étape précédente.
Les notes supplémentaires pour des versions spécifiques de VC++ sont répertoriées ci-dessous.
Pour uniquement les compilateurs 32 bits, téléchargez Visual Studio C++ 2008 Express Edition .
Pour les compilateurs 64 bits[2][3], téléchargez SDK Windows pour Windows 7 et .NET Framework 3.5 SP1 .
- Décochez tout sauf
Developer Tools >> Visual C++ Compilers
pour gagner du temps et de l'espace disque lors de l'installation d'outils SDK dont vous n'avez normalement pas besoin.
Selon Microsoft, si vous avez installé Visual Studio 2010 SP1, il est possible que les compilateurs et les bibliothèques de VC++ aient été supprimés.
Si tel est le cas, téléchargez Mise à jour du compilateur Visual C++ 2010 SP1 .
Si vous n'avez pas besoin de l'IDE Visual Studio, téléchargez Outils de compilation de Visual Studio C++ 2015 .
Si vous n'avez pas besoin de l'IDE Visual Studio, téléchargez Build Tools for Visual Studio 2017 .
Suggestion : Si vous avez une installation Python 32 et 64 bits, vous pouvez également utiliser virtualenv pour créer des environnements Python distincts afin que vous puissiez utiliser l'un ou l'autre à la fois sans modifier votre chemin pour choisir la version Python à utiliser.
Selon @ srodriguex , vous pourrez peut-être ignorer le chargement manuel du fichier de commandes (étapes 4 à 6) en copiant à la place quelques fichiers de commandes où Python effectue la recherche en suivant - cette réponse . Si cela ne fonctionne pas, voici les étapes suivantes qui ont initialement fonctionné pour moi.
Ouvrez un cmd.exe
Avant de essayer d’installer quelque chose qui nécessite des extensions C, exécutez le fichier de commandes suivant pour charger l’environnement du compilateur VC++ dans la session (c’est-à-dire les variables d’environnement, le chemin du compilateur, etc.).
Exécuter:
Compilateurs 32 bits:
Remarque : les installations Windows 32 bits n'auront que C:\Program Files\
comme prévu
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
Compilateurs 64 bits:
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars64.bat"
Remarque : Oui, les compilateurs 64 bits natifs sont dans Program Files (x86)
. Ne me demande pas pourquoi.
En outre, si vous vous demandez quelle est la différence entre vcvars64.bat
et vcvarsx86_AMD64.bat
ou, plus important encore, la différence entre AMD64
et x86_AMD64
, les premiers sont pour le natif Les outils de compilateur 64 bits et ce dernier sont les compilateurs croisés 64 bits pouvant s'exécuter sur une installation Windows 32 bits.
Mise à jour:
Si pour quelque raison que ce soit vous obtenez error: ... was unexpected at this time.
où le ...
est une série de caractères, vous devez vérifier que la variable de chemin d'accès ne comporte pas de caractères superflus, tels que des citations supplémentaires ou des valeurs parasites. personnages. Le fichier de commandes ne pourra pas mettre à jour votre chemin de session s'il ne le comprend pas du tout.
Si cela se passe bien, vous devriez recevoir l'un des messages suivants en fonction de la version de VC++ et de la commande que vous avez exécutées:
Pour les outils de compilateur 32 bits:Setting environment for using Microsoft Visual Studio 20xx x86 tools.
Pour les outils de compilateur 64 bits:Setting environment for using Microsoft Visual Studio 20xx x64 tools.
Maintenant , lancez la configuration via python setup.py install
ou pip install pkg-name
Espérez et croisez les doigts pour que les planètes soient correctement alignées afin que VC++ puisse coopérer.
Que se passe-t-il? Les modules Python peuvent être une partie écrite en C ou C++ (généralement pour la vitesse). Si vous essayez d'installer un tel paquet avec Pip (ou setup.py
), il doit compiler ce C/C++ à partir de la source. Hors de la boîte, Pip va vous prendre pour le compilateur Microsoft Visual C++ installé. Si vous ne l'avez pas, vous verrez ce message d'erreur cryptique "Erreur: Impossible de trouver vcvarsall.bat".
La solution préconisée consiste à installer un compilateur C/C++, Microsoft Visual C++ ou MinGW (projet à code source ouvert). Cependant, l’installation et la configuration sont extrêmement difficiles. (Edit 2014: Microsoft a publié un compilateur C++ spécial pour Python 2.7)
La solution la plus simple consiste à utiliser les programmes d'installation Windows de Christoph Gohlke (.msi) pour les packages Python populaires. Il construit des installateurs pour Python 2.x et 3.x, 32 bits et 64 bits. Vous pouvez les télécharger à partir de http://www.lfd.uci.edu/~gohlke/pythonlibs/
Si vous aussi vous pensez que "Erreur: Impossible de trouver vcvarsall.bat" est un message ridiculement cryptique et inutile, veuillez commenter le bogue à l'adresse http://bugs.python.org/issue2943 pour le remplacer par un message plus utile et plus convivial.
À titre de comparaison, Ruby est fourni avec un gestionnaire de paquets Gem et propose un compilateur C/C++ quasi officiel, DevKit. Si vous essayez d’installer un paquet sans ce paquet, vous voyez ce message utile et utile:
Veuillez mettre à jour votre PATH pour inclure des outils de compilation ou télécharger le DevKit à partir de http://rubyinstaller.org/downloads et suivez les instructions fournies à http://github.com/oneclick/rubyinstaller/wiki/Development-Kit
Vous pouvez lire un discours plus long sur Python packaging à https://stackoverflow.com/a/13445719/284795
Vous devrez installer un compilateur Microsoft compatible avec le compilateur utilisé pour construire Python. Cela signifie que vous avez besoin de Visual C++ 2008 (ou plus récent, avec quelques modifications ).
Microsoft fournit maintenant un compilateur et des en-têtes groupés juste pour pouvoir compiler les extensions Python, à l'URL mémorable:
Compilateur Microsoft Visual C++ pour Python 2.7
C'est un paquet relativement petit; 85 Mo à télécharger, installable sans privilèges d'administrateur, aucun redémarrage requis. Le nom est un peu trompeur, le compilateur fonctionnera pour toute version de Python initialement compilée avec Visual C++ 2008, et pas seulement Python 2.7.
Si vous démarrez une invite interactive Python _ ou imprimez sys.version
, recherchez la chaîne MSC
version; s'il s'agit de MSC v.1500
, vous pouvez utiliser cet outil.
De la annonce originale à la liste de distutils :
Microsoft a publié un package de compilateur pour Python 2.7 afin de permettre aux utilisateurs de créer et de distribuer plus facilement leurs modules d’extension C sous Windows. Le compilateur Microsoft Visual C++ pour Python 2.7 (a.k.a. VC9) est disponible à partir de: http://aka.ms/vcpython27
Ce paquet contient tous les outils et les en-têtes nécessaires à la construction de modules d'extension C pour Python 2.7 32 bits et 64 bits (notez que certains modules d'extension nécessitent des dépendances tierces telles que OpenSSL ou libxml2 non incluses). . Les autres versions de Python construites avec Visual C++ 2008 sont également prises en charge. Par conséquent, "Python 2.7" est une simple publicité - il fonctionnera parfaitement avec les versions 2.6 et 3.2.
Notez que vous devez avoir setuptools
6.0 ou plus récent installé (répertorié dans la configuration requise de la page de téléchargement). Le projet que vous installez doit utiliser setuptools.setup()
, et non distutils
, sinon la détection automatique ne fonctionnera pas.
Microsoft a déclaré vouloir conserver l'URL stable afin que les scripts automatisés puissent s'y référer facilement.
Je viens d'avoir ce même problème, je vais donc raconter mon histoire ici en espérant que cela aidera quelqu'un d'autre aux mêmes problèmes et lui épargnera les quelques heures que je viens de passer:
J'ai mingw (g ++ (GCC) 4.6.1) et python 2.7.3 dans une boîte Windows 7 et j'essaye d'installer PyCrypto.
Tout a commencé avec cette erreur lors de l'exécution de setup.py install:
error: Unable to find vcvarsall.bat
Il est facile de résoudre le problème après avoir recherché Google en spécifiant mingw comme compilateur de choix:
setup.py install build --compiler=mingw32
Le problème est que j'ai alors une erreur différente:
configure: error: cannot run C compiled programs.
Il se trouve que mon anti-virus bloquait l'exécution d'un fichier .exe récemment compilé. Je viens de désactiver le "bouclier résident" anti-virus et je suis passé à l'erreur suivante:
cc1.exe: error: unrecognized command line option '-mno-cygwin'
error: command 'gcc' failed with exit status 1
Cela résout le problème: "Installez une version légèrement plus ancienne de MinGW ou modifiez distutils\cygwinccompiler.py dans votre répertoire Python pour supprimer toutes les instances de -mno-cygwin." (de ici )
Maintenant, je peux enfin commencer à travailler.
On dirait que sa recherche de compilateurs VC, vous pouvez donc essayer de mentionner le type de compilateur avec -c mingw32
, puisque vous avez msys
python setup.py install -c mingw32
J'ai python 2.73 et Windows 7. La solution qui a fonctionné pour moi était la suivante:
C:\programs\mingw\bin;
Créé distutils.cfg situé à C:\Python27\Lib\distutils\distutils.cfg
contenant:
[build]
compiler=mingw32
Pour que MinGW ne reconnaisse plus le drapeau -mno-cygwin, supprimez-le dans les lignes 322 à 326 de C:\Python27\Lib\distutils\cygwincompiler.py.
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))
Regardez dans le fichier setup.py
du paquet que vous essayez d'installer. S'il s'agit d'un package plus ancien, il est possible que vous importiez distutils.core.setup()
plutôt que setuptools.setup()
.
J'ai couru à cela (en 2015) avec une combinaison de ces facteurs:
Le compilateur Microsoft Visual C++ pour Python 2.7 à partir de http://aka.ms/vcpython27
Un ancien paquet qui utilise distutils.core.setup()
Essayer de faire python setup.py build
plutôt que d'utiliser pip
.
Si vous utilisez une version récente de pip, il forcera (monkeypatch) le paquet à utiliser setuptools, même si son setup.py
fait appel à distutils. Toutefois, si vous n'utilisez pas pip et que vous ne faites que python setup.py build
, le processus de construction utilisera distutils.core.setup()
, qui ne connaît pas l'emplacement d'installation du compilateur.
Étape 1: Ouvrez l'invite de commande Visual C++ 2008 appropriée.
Ouvrez le menu Démarrer ou l'écran de démarrage et recherchez "Invite de commande Visual C++ 2008 32 bits" (si votre python est 32 bits) ou "Invite de commande Visual C++ 2008 64 bits" (si votre python est 64 bits). Exécuter. La commande Invite doit indiquer Visual C++ 2008 ... dans la barre de titre.
Étape 2: Définissez les variables d'environnement.
Définissez ces variables d’environnement dans la commande Invite que vous venez d’ouvrir.
SET DISTUTILS_USE_SDK=1
SET MSSdk=1
Référence http://bugs.python.org/issue23246
Étape 3: Construisez et installez
cd
au paquet que vous voulez construire et exécutez python setup.py build
, puis python setup.py install
. Si vous voulez installer dans un virtualenv, activez-le avant de le construire.
Peut-être que quelqu'un pourrait être intéressé, les éléments suivants ont fonctionné pour moi pour le paquet py2exe. (Windows 7 64 bits et portable python 2.7, Visual Studio 2005 Express avec Windows SDK pour Windows 7 et .NET Framework 4)
set VS90COMNTOOLS=%VS80COMNTOOLS%
ensuite:
python.exe setup.py install
J'ai passé presque deux jours à trouver une solution à ce problème dans mon python 3.4 version 64 bits: Python 3.4.3 (v3.4.3: 9b73f1c3e601, 24 février 2015, 22:44 : 40) [MSC v.1600 64 bits (AMD64)] sur win32
Solution 1, difficile: (avant de lire ceci, lisez d'abord la Solution 2 ci-dessous) Enfin, voici ce qui m'a aidé:
vcvars64.bat
dans C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64
qui contient CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
ou un autre chemin, en fonction de l'endroit où vous avez installé le vôtreaprès cela j'ai essayé de pip install numpy
mais j'ai reçu l'erreur suivante:
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
J'ai changé mfinfo
en None
dans C:\Python34\Lib\distutils\msvc9compiler.py
par ceci https://stackoverflow.com/a/23099820/4383472
pip install numpy
, mon antivirus avast a tenté d'interférer dans le processus d'installation, mais je l'ai rapidement désactivéLa compilation de numpy a pris beaucoup de temps. J'ai même pensé qu'il y avait une erreur, mais finalement tout s'est bien passé.
Solution 2, facile: (Je sais que cette approche a déjà été mentionnée dans un vote très votant réponse , mais je le répète depuis c’est vraiment plus facile) Après avoir parcouru tout ce travail, j’ai compris que le meilleur moyen pour moi est d’utiliser des binaires déjà précompilés de http://www.lfd.uci.edu/~gohlke/pythonlibs/ à l'avenir. Il y a très peu de chances pour que j'aie besoin d'un paquet (ou d'une version d'un paquet) que ce site ne contient pas. Le processus d'installation est également beaucoup plus rapide de cette façon. Par exemple, pour installer numpy
:
numpy‑1.9.2+mkl‑cp34‑none‑win_AMD64.whl
(si vous avez Python 3.4 64 bits) de ce sitepip install numpy‑1.9.2+mkl‑cp34‑none‑win_AMD64.whl
(ou le chemin d'accès complet au fichier, en fonction de l'ouverture de l'invite)J'ai rencontré ce problème lorsque j'ai essayé d'installer la bibliothèque numpy sur mon python 3.5. La solution consiste à installer VS2015. J'avais VS2008, 2012, 2013, dont aucun n'est compatible avec python 3.5. Apparemment, la version la plus récente de python dépend des versions les plus récentes de VS.
Assurez-vous également que C++ Common Tools est installé avec Visual Studio.
Je voulais exécuter pysph sous Windows 10 sous Python 2.7 et je n'ai pas trouvé vcvarsall.bat (de distutils).
Ma solution était la suivante:
Installez Microsoft Visual C++ pour Python 2.7 (comme suggéré par Michael)
Sous Windows 10, il a été installé (mon nom d’utilisateur est Andreas):
C:\Users\Andreas\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0
Définissez la variable d'environnement VS90COMNTOOLS sur le chemin d'installation de Visual C++ pour Python 2.7 (voir le chemin ci-dessus).
Si cela ne fonctionne toujours pas, modifiez-le dans le module
C:/Python27/lib/distutils
le fichier msvc9compiler.py. Recherchez la fonction find_vcvarsall et effectuez les modifications suivantes.
Remplacez la ligne:
productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC")
avec
productdir = os.path.join(toolsdir)
C’est ici que vcvarsall.bat réside dans mon cas (cochez, où vcvarsall.bat est dans votre installation).
Vous pouvez télécharger gratuitement Visual C++ 2008 Express Edition à partir de http://go.Microsoft.com/?linkid=7729279 , qui définira la variable d'environnement VS90COMNTOOLS lors de l'installation et, par conséquent, à l'aide d'un compilateur compatible.
Comme @PiotrDobrogost l'a mentionné dans un commentaire, sa réponse à cette autre question explique en détail la raison pour laquelle Visual C++ 2008 est une bonne chose à construire, mais cela peut changer à mesure que la version Windows de Python passe à des versions plus récentes. de Visual Studio: Construction de lxml pour Python 2.7 sous Windows
J'ai essayé toutes les réponses ci-dessus et j'ai constaté qu'elles ne fonctionnaient pas. J'utilisais peut-être Windows 8 et j'avais installé Visual Studio 2012. Dans ce cas, c'est ce que vous faites.
Le fichier vcvarsall.bat
se trouve ici: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC
Il suffit de sélectionner le fichier et de le copier.
Ensuite, allez dans ce répertoire: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools
et collez le fichier. Et puis, tout devrait aller bien.
J'ai eu ce problème en utilisant Python 3.4.1 sur Windows 7 x64 , et malheureusement les paquets dont j'avais besoin ne possédaient pas d'exe ou de roulettes appropriés que je pouvais utiliser. . Ce système nécessite quelques 'solutions de contournement', détaillées ci-dessous (et TLDR en bas ).
En utilisant les informations dans réponse de Jaxrtech ci-dessus , j'ai déterminé que j'avais besoin de Visual Studio C++ 2010 (sys.version return MSC v.1600). J'ai donc installé Visual C++ 2010 Express à partir du lien. dans sa réponse, qui est http://go.Microsoft.com/?linkid=9709949 . J'ai tout installé avec les mises à jour, mais comme vous pouvez le lire ci-dessous, c'était une erreur. Seule la version originale d'Express doit être installée pour le moment (aucune mise à jour).
vcvarsall.bat était maintenant présent, mais il y avait une nouvelle erreur lors de l'installation du paquet, query_vcvarsall raise ValueError(str(list(result.keys())))ValueError: [u'path']
. Il y a d'autres questions stackoverflow avec cette erreur, telles que Erreurs lors de la construction/installation du module C pour Python 2.7
J'ai déterminé à partir de cette réponse que 2010 Express installait uniquement des compilateurs 32 bits. Pour obtenir des compilateurs 64 bits (et autres), vous devez installer Windows 7.1 SDK. Voir http://msdn.Microsoft.com/en-us/windowsserver/bb980924.aspx
Cela ne s’installerait cependant pas pour moi et le programme d’installation a renvoyé l’erreur installation failed with return code 5100
. J'ai trouvé la solution sur le lien suivant: http://support.Microsoft.com/kb/2717426 . En résumé, si des versions plus récentes de x86 et x64 de Microsoft Visual C++ 2010 Redistributable sont installées, elles entrent en conflit avec celles du programme d'installation du SDK et nécessitent une désinstallation préalable.
Le SDK s’est alors installé, mais j’ai remarqué que vcvars64.bat n’existait toujours pas dans C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
, ni dans ses sous-dossiers. vcvarsall.bat exécute le fichier de commandes vcvars64. Par conséquent, sans lui, le package python ne serait toujours pas installé (j'ai oublié l'erreur affichée à ce moment-là).
J'ai ensuite trouvé des instructions ici: http://www.cryptohaze.com/wiki/index.php/Windows_7_Build_Setup#Download_VS_2010_and_Windows_SDK_7.1 En suivant les instructions, j'avais déjà installé Express et 7.1 SDK, donc installé SDK 7.1 SP1 et corrigé le fichier d’en-tête manquant. J'ai ensuite créé manuellement vcvars64.bat avec le contenu CALL setenv /x64
. Je vais coller toutes ces instructions ici, afin qu'elles ne se perdent pas.
L'étape 1 consiste à télécharger Visual Studio Express 2010.
http://www.Microsoft.com/visualstudio/en-us/products/2010-editions/express est un bon point de départ. Téléchargez le programme d'installation et exécutez-le (vc_web.exe). Vous n'avez pas besoin du téléchargement supplémentaire de SQL 2008.
Vous aurez également besoin du kit de développement logiciel Windows (version 7.1 actuellement) pour les compilateurs 64 bits - à moins que vous ne souhaitiez créer des versions 32 bits uniquement, qui ne sont pas totalement prises en charge ...
http://www.Microsoft.com/en-us/download/details.aspx?id=8279 est un bon point de départ pour télécharger ceci - vous voudrez exécuter le fichier winsdk_web.exe une fois téléchargé. !
L'installation par défaut ici est très bien.
Enfin, téléchargez et installez la mise à jour Windows SDK 7.1 SP1: http://www.Microsoft.com/en-us/download/details.aspx?id=4422
Et, pour réparer le fichier d’en-tête manquant, VS2010 SP1. http://www.Microsoft.com/downloads/en/confirmation.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5
Et putain, corrigez le fichier de commandes manquant pour VS2010 Express. Cela devient carrément absurde.
Dans C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64, créez "vcvars64.bat" avec les éléments suivants (vous devrez exécuter l'exécution en tant qu'administrateur):
CALL setenv/x64
Mon package python n'a toujours pas été installé (impossible de se souvenir de l'erreur). J'ai ensuite trouvé quelques instructions (copiées ci-dessous) pour utiliser l'invite de commande spéciale du SDK 7.1, voir: https://mail.python.org/pipermail/distutils-sig/2012-February/018300.html
Peu importe cette question. Quelqu'un ici a remarqué cet élément dans le menu: Démarrer-> Tous les programmes-> SDK Microsoft Windows v7.1 -> Invite de commande du SDK Windows 7.1
Ceci exécute un travail par lots qui apparaît pour configurer un environnement de travail pour le compilateur. A partir de cette invite, vous pouvez taper "setup.py build" ou "setup.py install".
J'ai ouvert l'invite de commandes Windows SDK 7.1 comme indiqué et je l'ai utilisée pour exécuter easy_install sur le package python. Et enfin, le succès!
TLDR;
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64\vcvars64.bat
avec le contenu CALL setenv /x64
Les étapes ci-dessous ont corrigé ce problème pour moi. J'essayais de créer une configuration avec l'extension cython.
Pour une raison quelconque, distutils s'attend à ce que le fichier vcvarsall.bat soit dans le répertoire VC, mais VC++ pour python tools l'a à la racine de la version 9.0. Pour résoudre ce problème, supprimez "VC" de la path.join (environ autour de la ligne 247)
#productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC") productdir = os.path.join(toolsdir, os.pardir, os.pardir)
Les étapes ci-dessus ont résolu le problème pour moi.
Le moyen le plus simple de résoudre ce problème en 2016 consiste à installer Chocolatey, puis le package vcpython27
. Powershell ouvert:
> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
> choco install python2 -y
> choco install vcpython27 -y
Le compilateur Microsoft Visual C++ pour Python 2.7 sur http://www.Microsoft.com/en-us/download/details.aspx?id=44266 n'est-il pas une solution?
J'ai essayé plusieurs solutions mais une seule a fonctionné pour moi, l'installation de Microsoft Visual Studio 2008 Express C++.
J'ai eu ce problème avec un module Python 2.7 écrit en C (yEnc, qui a d'autres problèmes avec MS VS). Notez que Python 2.7 est construit avec la version MS VS 2008, pas 2010!
Bien que ce soit gratuit, il est assez difficile à trouver car MS promeut VS 2010. Néanmoins, les liens très directs officiels de MSDN fonctionnent toujours: check https://stackoverflow.com/a/15319069/2227298 pour les liens de téléchargement.
Si vous avez déjà installé
pip install --global-option build_ext --global-option --compiler=mingw32 packagename
fonctionne, forçant pip à construire en utilisant le compilateur mingw au lieu de celui de Microsoft. Voir ici https://github.com/pypa/pip/issues/18 pour plus de détails (dernier post).
J'ai eu le même problème et l'ai résolu pour le moment.
"Google" m'a dit que je devais installer "Compilateur Microsoft Visual C++ pour Python 2.7". J'installe non seulement l'outil, mais également Visual C++ 2008 Reditributable, mais cela n'a pas aidé. J'ai ensuite essayé d'installer Visual C++ 2008 Express Edition. Et le problème est parti!
Essayez simplement d'installer Visual C++ 2008 Express Edition!
appeler import setuptools
permettra de corriger distutils pour forcer la compatibilité avec Visual Studio. L'appel de vcvars32.bat
manuellement permettra de configurer l'environnement virtuel et d'éviter d'autres erreurs courantes du compilateur. Pour VS 2017, le fichier se trouve à l'adresse
"C:\Fichiers de programme (x86)\Microsoft Visual Studio\2017\Communauté\VC\Auxiliary\Build\vcvars32.bat"
Voici le script d’installation que j’utilise pour compiler rapidement des fichiers .pyx en .pyd: (Remarque: il utilise le module tiers send2trash
# cython_setup.py
import sys, os, time, platform, subprocess
from setuptools import setup, find_packages
from Cython.Build import cythonize
from traceback import format_exc
# USAGE:
#
# from cython_setup import run
# run(pyx_path)
# vcvars = r"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
# NOTE: to use visual studio 2017 you must have setuptools version 34+
vcvars = r"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars32.bat"
def _build_ext():
try:
pyx_path = sys.argv.pop(-1)
pyx_path = os.path.abspath(pyx_path)
if not os.path.exists(pyx_path):
raise FileNotFoundError(f"{pyx_path} does not exist")
project_name = sys.argv.pop(-1)
os.chdir(os.path.abspath(os.path.dirname(pyx_path)))
print("cwd: %s" % os.getcwd())
print(os.path.abspath("build"))
setup(
name=project_name,
# cmdclass = {'build_ext': build_ext},
packages=find_packages(),
# ext_modules=cythonize(extensions)
ext_modules=cythonize(pyx_path,
compiler_directives={'language_level': 3, 'infer_types': True, 'binding': False},
annotate=True),
# include_dirs = [numpy.get_include()]
build_dir=os.path.abspath("build")
)
except:
input(format_exc())
def retry(func):
def wrapper(*args, **kw):
tries = 0
while True:
try:
return func(*args, **kw)
except Exception:
tries += 1
if tries > 4:
raise
time.sleep(0.4)
return wrapper
@retry
def cleanup(pyx_path):
from send2trash import send2trash
c_file = os.path.splitext(pyx_path)[0] + ".c"
if os.path.exists(c_file):
os.remove(c_file)
if os.path.exists("build"):
send2trash("build")
def move_pyd_files(pyx_path):
pyx_dir = os.path.dirname(pyx_path)
build_dir = os.path.join(pyx_dir, "build")
if not os.path.exists(build_dir):
raise RuntimeError(f"build_dir {build_dir} did not exist....")
found_pyd = False
for top, dirs, nondirs in os.walk(build_dir):
for name in nondirs:
if name.lower().endswith(".pyd") or name.lower().endswith(".so"):
found_pyd = True
old_path = os.path.join(top, name)
new_path = os.path.join(pyx_dir, name)
if os.path.exists(new_path):
print(f"removing {new_path}")
os.remove(new_path)
print(f"file created at {new_path}")
os.rename(old_path, new_path)
if not found_pyd:
raise RuntimeError("Never found .pyd file to move")
def run(pyx_path):
"""
:param pyx_path:
:type pyx_path:
:return: this function creates the batch file, which in turn calls this module, which calls cythonize, once done
the batch script deletes itself... I'm sure theres a less convoluted way of doing this, but it works
:rtype:
"""
try:
project_name = os.path.splitext(os.path.basename(pyx_path))[0]
run_script(project_name, os.path.abspath(pyx_path))
except:
input(format_exc())
def run_script(project_name, pyx_path):
dirname = os.path.dirname(pyx_path)
# ------------------------------
os.chdir(dirname)
if os.path.exists(vcvars):
# raise RuntimeError(
# f"Could not find vcvars32.bat at {vcvars}\nis Visual Studio Installed?\nIs setuptools version > 34?")
subprocess.check_call(f'call "{vcvars}"', Shell=True)
cmd = "python" if platform.system() == "Windows" else "python3"
subprocess.check_call(f'{cmd} "{__file__}" build_ext "{project_name}" "{pyx_path}"', Shell=True)
move_pyd_files(pyx_path)
cleanup(pyx_path)
if len(sys.argv) > 2:
_build_ext()
Je ne sais pas s'il est trop tard, mais j'ai trouvé compilateur Microsoft Visual C++ pour Python 2.7 qui lit
Le message d'erreur typique que vous recevrez si vous avez besoin de ce compilateur est Impossible de trouver vcvarsall.bat
J'espère que cela t'aides!
Avec Python 3.4, la dépendance concerne Visual Studio 2010. L'installation de Visual C++ 2010 Express a résolu le problème pour moi.
Inciter à utiliser les installations VS 2008 ou 2013 qui ne fonctionnaient pas.
J'ai eu la même erreur (que je trouve idiote et pas vraiment utile que les messages d'erreur disparaissent) et j'ai continué à avoir des problèmes, malgré la disponibilité d'un compilateur C.
Surprenant, ce qui a fini par travailler pour moi était tout simplement mise à niveau de pip et setuptools vers la version la plus récente. J'espère que cela aide quelqu'un d'autre là-bas.
La réponse donnée par @monkey est l’une des réponses correctes, mais elle est incomplète.
Si vous souhaitez utiliser MinGW , vous devez sélectionner C, C++ ainsi que les autres outils de développement suggérés au cours du processus d'installation de MinGW pour obtenir également le fichier "make.exe".
Vous devez également définir le chemin d'accès à make.exe dans env.
Pour compléter sa réponse, voici les étapes:
C:\Programs\MinGW\bin;C:\Programs\MinGW\msys\1.0\bin;
au CHEMINEditez (créez s'il n'existe pas) le fichier distutils.cfg
situé en C:\Python26\Lib\distutils\distutils.cfg
pour être:
[build]
compiler=mingw32
Assurez-vous que les variables d'environnement sont définies en ouvrant un nouveau cmd.exe.
Installez Visual Studio 2015 Community Edition à partir de https://www.visualstudio.com , puis
pour Python 3.4
set VS100COMNTOOLS=%VS140COMNTOOLS% && pip install XX
Liste exhaustive des versions de MS VС ++ et des variantes d'installation officiellement prises en charge par distutils
(et certaines par setuptools
) et comment les utiliser peuvent être trouvés à
https://wiki.python.org/moin/WindowsCompilers
Il spécifie également quelle version de VC++ est requise pour quelle version officielle de Win32 Python. Notez que MinGW n'est pas officiellement pris en charge (voir ci-dessous pour plus de détails).
En bref:
setuptools
et non distutils
.Vous pouvez utiliser easy_install au lieu de pip, cela fonctionne pour moi.
solution la plus rapide :
Si vous avez python 3.4.x , la solution consiste simplement à installer VC++ 2010 car il est utilisé pour se compiler.
https://www.visualstudio.com/en-us/downloads#d-2010-express
ma version python est MSC v.1600 32 bits (intel)] sur win32
a bien fonctionné sous Windows8
Si vous souhaitez installer pyodbc sur une machine Windows qui ne dispose pas de Visual Studio, une autre option consiste à installer manuellement pyodbc à l'aide de la distribution binaire.
Ceci est particulièrement utile si vous ne disposez pas des privilèges d’administrateur sur la machine sur laquelle vous travaillez et tentez de configurer un virtualenv .
Pas:
[python installation directory or virtualenv]\Lib\site-packages
Je suis essayé toutes les réponses ci-dessus, mais pas travaillé pour moi. J'utilisais Windows 10 et j'avais installé Visual Studio 2010. Dans mon cas, il faut ajouter vcvars64.bat
à C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64
.
voici vcvars64.bat:
CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
Installez Microsoft SDK 7.1 si vous ne l'installez pas et réexécutez pip install dulwich
Allez ici: http://docs.continuum.io/anaconda/install.html#windows-install
Il y a des instructions pour installer anaconda qui fournira une interface graphique et une installation silencieuse de la majorité des paquets qui semblent être à l’origine de ce problème http://www.scipy.org/ . Je connais la solution pour la version 2.7 ici https://www.Microsoft.com/en-us/download/details.aspx?id=44266 mais je n'ai pas vu d'option pour Python 3.4. Après avoir téléchargé et installé Anaconda, vous devriez pouvoir importer la majorité des paquets dont vous avez besoin depuis scipy.
J'espère que cela aide certaines personnes. Cela m'a pris 45 minutes de postes et de sites à récurer.
EDIT: Je voulais juste noter qu’un lien Python34 se trouve sur la page GUI à côté des symboles du système d’exploitation.
J'ai eu la même erreur lorsque j'ai essayé d'installer pandas dans Windows 10. Après avoir recherché plusieurs solutions, j'ai fini par utiliser Wheel.
Tout d’abord, mettez à niveau pip vers la dernière version:
easy_install install -U pip
Deuxièmement, installez la roue:
pip install wheel
Troisièmement, téléchargez le fichier whl de votre paquet et installez-le:
pip install [xxx].whl
Jusqu'ici, je pense que wheel est le meilleur moyen d'installer Python paquets sur Windows.
http://www.stickpeople.com/projects/python/win-psycopg/
L'installation du fichier approprié à partir du lien ci-dessus a résolu mon problème.
Mention: Jason Erickson [[email protected]]. Il gère assez bien cette page pour les utilisateurs de Windows.
J'ai suivi les instructions http://springflex.blogspot.ru/2014/02/how-to-fix-valueerror-when-trying-to.html . mais rien ne s'est passé. Puis j'ai installé Visual Studio Express 2010 ( http://www.Microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express ) en suivant les conseils http://blog.python.org/2012/05/recent-windows-changes-in-python-33.html cela m'a aidé