Windows上のPython 2.7用のLXMLの構築
-
27-09-2019 - |
質問
Windows 64ビットマシンでPython 2.7用のLXMLを構築しようとしています。 Python 2.7バージョン用のLXML Eggが見つかりませんでした。だから私はそれを情報源から編集しています。私はこのサイトの指示に従っています
静的リンクセクションで。エラーが発生しています
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
誰かがこれで私を助けることができますか? Microsoft Visual Studioを使用するためにパスを設定しようとしました。コマンドラインからvcvarsall.batを実行できます。
解決
私はあなたがこれにvs2008を使用していないに違いない:)
あります def find_vcvarsall(バージョン): 次のコメントでdistutilsの関数(何を推測してください)
最初は、レジストリでVS 2008のProductDirを見つけようとします。それが失敗した場合、VS90comntools env varに戻ります。
VS 2008を使用していない場合、レジストリキーも適切な環境変数もありません。そのため、distutilsはvcvarsall.batファイルを見つけることができません。します いいえ BATファイルがPath環境変数を介して到達可能かどうかを確認してください。
ソリューションは、VS90ComNtools変数を定義して、Visual Studioのツールディレクトリを指すことです。
そうは言っても、見てください 11.4。 distutils.msvccompiler - Microsoftコンパイラ Pythonのドキュメントのセクションが記載されています
通常、拡張モジュールは、Pythonのコンパイルに使用された同じコンパイラでコンパイルする必要があります。
Martinv。Loewisin the Emailのタイトル Visual Studio Express 2008を今すぐダウンロードしてください Python-Listメーリングリストでは、同じことを述べています
Python 2.6、2.7、および3.1はすべて、そのリリースで構築されています(IE 2008)。別の長い伝統のため、Python拡張モジュールは、Python自体と同じコンパイラバージョン(より具体的にはCRTバージョン)で構築する必要があります。したがって、これらのリリースのいずれかの拡張モジュールを構築するには、VS 2008またはVS 2008 Expressのコピーが必要です。
上記の声明に照らして、あなたはあなたです したほうがいい vs 2008を使用する場合は、python 2.7用にLXMLを構築する場合は、vs90comntoolsの設定がvcvarsall.batファイルを見つけるのに役立ちますが、そうではありません 解決。
そうは言っても:)人々は新しいコンパイラで古いCRTを使用しようとします:
Visual Studio 2008のC ++ランタイムライブラリを備えたVisual Studio 2010のC ++コンパイラを使用できますか?
特定のCRTバージョンを使用してC ++コンパイラを強制する方法は?
VS 2008-古いCランタイムに対するリンク
スレッドの中のケブ・ドワイヤー(使用されているVSのバージョンの重要性を指摘してくれたVSのバージョンの重要性を指摘してくれて、コンパイラの構成を扱っている場所としてdistutilsを指し示してくれて)に感謝したいと思います。 Windowsの下のLXMLの構築の問題 - エラー:vcvarsall.batを見つけることができません LXMLメーリングリスト。また感謝したいです アグロンホルム Freenode #distutils IRCチャネルから、distutilsがvcvarsall.batファイルを検索するコードが含まれていることを確認するために確認します。
他のヒント
推奨されるソリューションに従った後:
- ダウンロード vcforpython27.msi マイクロソフトから、
- インストール(win7、python(x、y)2.7.9 32bit)、
- 環境変数の入力 /更新 vs90comntools インストールディレクトリ値に (c:プログラムファイル(x86)共通ファイル Microsoft VisualC ++ for Python 9.0)
私の問題はまだ存在していました(CにPython拡張機能を構築したい)。
私は次の2つの信じられないほど汚れた微調整をしなければなりませんでしたが、すべてが実際に機能する前に:
- 変更 「msvc9compiler.py」 の 「C: python27 lib distutils」、 働き find_vcvarsall, 、今を指しています 「Python用のVisualC ++」 の代わりに 「VC」.
- ディレクトリの創設者をコピーします "c:プログラムファイル(x86)共通ファイル Microsoft Visual C ++ for Python 9.0 " に 「C:プログラムファイル(x86)共通ファイル Microsoft Visual C ++ for Python 」 (つまり、1つのdirレベルアップ)。
ここで誰が何か間違ったことをしているのかわからない - おそらく私。
編集。ムービングディレクトリは、説明されている問題のために機能します これはバグです.
vs90comntoolsが設定されていても、msvc9compilerはvcvarsall.batを見つけることができません。
%installdir%/vcvarsall.bat
そしてそうではありません%installdir%/VC/vcvarsall.bat
説明されている回避策は、Visual C ++コマンドプロンプトを使用しています。
PythonコマンドプロンプトのMSVCを入力します
distutils_use_sdk = 1を設定します
MSSDK = 1を設定します
python.exe setup.py ...
Jorj McKieはほぼ正しいものでした。実際、インストールしています vcforpython27.msi 十分ではありません。はい、distutilsにはfind_vcvarsallを見つけることを妨げる問題があります。実際、この問題はdistutilsではなく、vcforpython27.msiがどのようにパッケージ化され、vcvarsall.batが配置されているか(フォルダーレイアウトはVS2008 SDKとは異なります)。
一方、単純な回避策は、Python 2.7.11:Distutilsの代わりにSetuptoolsを使用するかもしれません。
あなたがdistutilsで立ち往生している場合、別のマニュアルの回避策:
1) Enter MSVC for Python command prompt
2) SET DISTUTILS_USE_SDK=1
3) SET MSSdk=1
4) you can then build your C extensions: python.exe setup.py ...
Gregory Szorcによるバグレポートと回避策:http://bugs.python.org/issue23246
IPython内で%% Cython Magicを使用するための詳細と回避策: https://github.com/cython/cython/wiki/cythonextensionsonsionsonwindows
https://github.com/develersrl/gccwinbinaries
同様の問題がありました。これは、インストールウィザードを使用して1つの好みを設定する以外に、すぐに機能しました。