J’ai installé python sur mon ordinateur Windows qui comprend Cython, mais en compilant le code, j’obtiens le message d’erreur suivan:
running build_ext
skipping ‹ hello.c › Cython extension (up-to-date)
building ‹ hello › extension
error: Unable to find vcvarsall.bat
Je ne trouve pas ce fichier sur mon ordinateur. D’après une recherche sur Google
Je pense que cela a quelque chose à voir avec la configuration du compilateur qui doit être définie pour MinGW au lieu de Visual C, donc j’ai mis le répertoire bin de MinGW dans mon PATH, mais cela n’a pas aidé.
Ensuite, j’ai lu qu’une certaine configuration était nécessaire pour indiquer au compilateur Cython
que MinGW doit être utilisé à la place de VC. Deux options sont:
modifier un fichier appelé « distutils.cfg » situé dans C:\Python26\Lib\distutils\distutils.cfg qui n’existe nulle part sur mon ordinateur.
L’exécution de ‹ setup.py install build --compiler=mingw32 › ne fonctionne pas non plus.
pas non plus car setup.py n’est pas dans le PATH et il n’y a pas de scripts setup.py dans le répertoire Python26.
De toute façon, je ne pense pas que ce soit la façon la plus directe de résoudre le problème, car on s’attend à ce que Pythonxy définisse l’environnement automatiquement. Il doit y avoir une solution plus simple.
J’ai essayé cette commande set DISTUTILS_USE_SDK=1 dans l’invite de commande de VS, mais cela n’a aucun effet.
J’ai trouvé la solution. J’ai eu exactement le même problème, et la même erreur, en installant ‹ amara ›. J’avais installé mingw32, mais distutils devait être configuré.
J’ai Python 2.6 qui était déjà installé.
J’ai installé mingw32 dans C:\programmes\mingw.
Ajoutez le répertoire bin de mingw32 à votre variable d’environnement : ajoutez c:\programmes\MinGW\bin ; au PATH.
Modifiez (créez s’il n’existe pas) le fichier distutils.cfg situé dans C:\Python26\Lib\distutils\distutils.cfg pour qu’il soit :
[build]
compiler=mingw32
Maintenant, lancez easy_install.exe amara.
Assurez-vous que l’environnement est défini en ouvrant un nouveau cmd.exe.
Le problème est dû au fait que vous n’avez pas de compilateur installé pour la compilation que vous essayez d’exécuter.
Voici ce dont vous pourriez avoir besoin selon la communauté MS Python Engineering,
Version Python | Vous aurez besoin de
------------------------------------------------------------------------
3.5 et ultérieurement |Visual C++ Build Tools 2015 ou Visual Studio 2015
3.3 et 3.4 |SDK pour Windows 7 et .NET 4.0
|(Alternativement, Visual Studio 2010 si vous y avez accès)
2.6 à 3.2 |Compilateur Microsoft Visual C++ pour Python 2.7
Malheureusement. J’ai tout essayé et cela ne fonctionne toujours pas. Lorsque j’essaie d’installer Windows SDK pour Windows 7, il me dit que j’ai besoin de .NET 4.0, mais lorsque j’essaie d’installer .NET 4.0, il me dit que .NET est déjà installé sur ma machine. Lorsque j’installe VS 2010, je reçois un fichier iso qui contient de nombreux fichiers. Je ne sais pas quoi faire avec tout cela. Le dernier lien est également inutile. Comme je l’ai déjà dit dans ma question, j’ai essayé cette commande set DISTUTILS_USE_SDK=1 dans l’invite de commande de VS, mais cela n’a aucun effet.
Merci ! Mais pouvez-vous fournir un exemple sur la façon d’utiliser mingwpy ou libpython pour construire une bibliothèque qui nécessite vcvarsall.bat ?
Libpython d’anaconda utilise mingw pour construire automatiquement vos extensions sans aucune pré-configuration. Notez que si votre script de construction setup.py utilise distutils, alors l’importation de setuptools va corriger distutils pour de bonnes raisons.
Étape 2 : Sélectionnez Windows 10 SK (10.0.20348.0+) et MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.29-16.10+) dans la section des composants individuels et cliquez sur Installer.
Étape 3 : Continuez à construire votre application python avec vcvarsall.bat qui est désormais présent.
Remarque : vcvarsall.bat se trouve dans C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build