Bâtiment lxml pour Python 2.7 sous Windows
Je suis en train de construire lxml pour Python 2.7 sur la 64 bits de Windows de la machine. Je ne pouvais pas trouver lxml oeuf pour la version de Python 2.7. Je suis donc le compiler à partir des sources. Je suis en suivant les instructions sur ce site
en vertu de la liaison statique de la section. Je suis d'erreur
C:\Documents and Settings\Administrator\Desktop\lxmlpackage\lxml-2.2.6\lxml-2.2.
6>python setup.py bdist_wininst --static
Building lxml version 2.2.6.
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' need
s to be available.
ERROR: 'xslt-config' is not recognized as an internal or external command,
operable program or batch file.
** make sure the development packages of libxml2 and libxslt are installed **
Using build configuration of libxslt
Building against libxml2/libxslt in one of the following directories:
..\libxml2-2.7.6--win32--w2k--x64\lib
..\libxslt-1.1.26--win32--w2k--x64--0002\lib
..\zlib-1.2.4--win32--w2k--x64
..\iconv-1.9.1--win32--w2k--x64-0001\lib
running bdist_wininst
running build
running build_py
running build_ext
building 'lxml.etree' extension
error: Unable to find vcvarsall.bat
Quelqu'un peut-il m'aider? J'ai essayé de définir le chemin d'accès à Microsoft Visual Studio..
Je peux courir vcvarsall.chauve-souris à partir de la ligne de commande.. mais python est d'avoir des problèmes
- Si vous arrive d'utiliser AMD64 vous pouvez essayer ces: lfd.uci.edu/~gohlke/pythonlibs
- Avez-vous des instructions quelque part sur la façon dont vous avez généré de ces exécutables?
- Je n'ai pas de compilation, de sorte que la meilleure chose à faire serait de contacter l'auteur: lfd.uci.edu/~gohlke
- Quelle est la version de Visual Studio utilisez-vous?
Vous devez vous connecter pour publier un commentaire.
Je parie que vous ne l'utilisez pas VS 2008 pour ça 🙂
Il y a def find_vcvarsall(version): fonction (devinez quoi, il semble pour vcvarsall.chauve-souris) dans distutils avec le commentaire suivant
Si vous n'êtes pas à l'aide de VS 2008 alors vous n'avez pas la clé de registre ni adapté à la variable d'environnement et c'est pourquoi distutils ne pouvez pas trouver vcvarsall.le fichier bat. Il ne pas vérifier si le fichier bat est accessible via la variable d'environnement PATH.
La solution est de définir VS90COMNTOOLS variable pour pointer vers le répertoire Outils de Visual Studio.
Cela dit regardez 11.4. distutils.msvccompiler — Compilateur de Microsoft section en Python docs qui stipule
Martin v. Loewis dans l'email intitulé Télécharger Visual Studio Express 2008 python-liste de liste de diffusion des membres de la même
À la lumière des déclarations ci-dessus vous devrait utiliser VS 2008 si vous voulez construire lxml pour Python 2.7 si bien que la définition d'VS90COMNTOOLS prend en charge la recherche de vcvarsall.fichier bat, il n'est pas la solution.
Cela dit 🙂 les gens essaient d'utiliser les anciennes CRT avec le nouveau compilateur:
Puis-je utiliser Visual Studio 2010 compilateur C++ avec Visual Studio 2008 du C++ Runtime Library?
La façon d'Appliquer le compilateur C++ pour l'utilisation spécifique de la version CRT?
VS 2008 - Lien avec d'anciennes runtime C
Je tiens à remercier Kev Dwyer (pour souligner l'importance de la version de VS qui est utilisé) et Stefan Behnel (pour m'indiquer distutils comme un lieu de traiter avec des compilateurs de configuration) dans le fil Problème de construction lxml sous Windows - erreur: Impossible de trouver vcvarsall.chauve-souris sur lxml liste de diffusion. Je voudrais aussi remercier agronholm de freenode #distutils canal IRC pour la confirmation que distutils ne contiennent du code qui ressemble pour vcvarsall.le fichier bat.
distutils\msvc9compiler.py
, maintenant latoolskey
en fonctionfind_vcvarsall(version)
donneVS100COMNTOOLS
. Ça veut dire que je doit installer Visual Studio 2010 Express au lieu de 2008?ValueError: ['path']
erreur: stackoverflow.com/q/4676728/688080 . Il semble que je doit installer une version professionnelle, au lieu de l'exprimer.Après à la suite de la solution recommandée:
le répertoire d'installation de la valeur (C:\Program Files (x86)\Common
Files\Microsoft\Visual C++ pour Python\9.0)
mon problème existait toujours (vous voulez construire une extension Python en C).
J'ai eu à faire les 2 incroyablement sale tweaks, avant tout, maintenant, est en effet à travailler:
fonction find_vcvarsall, maintenant point de "Visual C++ pour
Python" au lieu de "VC".
Files\Microsoft\Visual C++ pour Python\9.0\" à "C:\Program Fichiers
(x86)\Common Files\Microsoft\Visual C++ pour Python\" (c'est à dire un dir
monter de niveau).
Je ne peux pas dire qui a fait quelque chose de mal ici - probablement I.
MODIFIER. Le déplacement des répertoires d'œuvres à cause de la question décrite dans cette distutils bug.
La solution de contournement décrite est à l'aide de Visual C++ invite de commande:
Jorj McKie était presque correct: en effet, l'installation de VCForPython27.msi ne suffit pas, et oui il y a un problème dans distutils qui l'empêchent de trouver find_vcvarsall. En fait, le problème n'est pas directement dans distutils, mais dans la façon dont VCForPython27.msi a été emballé et où vcvarsall.chauve-souris est placé (les dossiers de mise en page est différente de la VS2008 SDK).
Une simple solution de contournement en attendant, cela devient peut-être patché en Python 2.7.11: utilisation setuptools au lieu de distutils.
Une autre solution de contournement manuelle si vous êtes coincé avec distutils:
Rapport de Bug et une solution de contournement par Grégoire Szorc:
http://bugs.python.org/issue23246
Plus d'infos et une solution de contournement pour l'utilisation de %%cython de la magie à l'intérieur de IPython: https://github.com/cython/cython/wiki/CythonExtensionsOnWindows
https://github.com/develersrl/gccwinbinaries
J'ai eu des problèmes similaires. Cela a fonctionné instantanément, sans rien d'autre qu'à l'aide d'un assistant d'installation et de réglage d'une préférence.