web-dev-qa-db-ja.com

Windowsにlxmlをインストールする方法

Python 3.4でWindows 8.1ラップトップにlmxlをインストールしようとしていますが、惨めに失敗します。

まず、シンプルで明白な解決策を試しました:pip install lxml。しかし、これは機能しませんでした。これが言ったことです:

Downloading/unpacking lxml
  Running setup.py (path:C:\Users\CARTE_~1\AppData\Local\Temp\pip_build_carte_000\lxml\setup.py) Egg_info for package lxml
    Building lxml version 3.4.2.
    Building without Cython.
    ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"
    ** make sure the development packages of libxml2 and libxslt are installed **

    Using build configuration of libxslt
    C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
      warnings.warn(msg)

    warning: no previously-included files found matching '*.py'
Installing collected packages: lxml
  Running setup.py install for lxml
    Building lxml version 3.4.2.
    Building without Cython.
    ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"
    ** make sure the development packages of libxml2 and libxslt are installed **

    Using build configuration of libxslt
    building 'lxml.etree' extension
    C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
      warnings.warn(msg)
    error: Unable to find vcvarsall.bat
    Complete output from command C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\CARTE_~1\\AppData\\Local\\Temp\\pip_build_carte_000\\lxml\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\CARTE_~1\AppData\Local\Temp\pip-l8vvrv9g-record\install-record.txt --single-version-externally-managed --compile:
    Building lxml version 3.4.2.

Building without Cython.

ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"

** make sure the development packages of libxml2 and libxslt are installed **



Using build configuration of libxslt

running install

running build

running build_py

creating build

creating build\lib.win32-3.4

creating build\lib.win32-3.4\lxml

copying src\lxml\builder.py -> build\lib.win32-3.4\lxml

copying src\lxml\cssselect.py -> build\lib.win32-3.4\lxml

copying src\lxml\doctestcompare.py -> build\lib.win32-3.4\lxml

copying src\lxml\ElementInclude.py -> build\lib.win32-3.4\lxml

copying src\lxml\pyclasslookup.py -> build\lib.win32-3.4\lxml

copying src\lxml\sax.py -> build\lib.win32-3.4\lxml

copying src\lxml\usedoctest.py -> build\lib.win32-3.4\lxml

copying src\lxml\_elementpath.py -> build\lib.win32-3.4\lxml

copying src\lxml\__init__.py -> build\lib.win32-3.4\lxml

creating build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\__init__.py -> build\lib.win32-3.4\lxml\includes

creating build\lib.win32-3.4\lxml\html

copying src\lxml\html\builder.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\clean.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\defs.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\diff.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\ElementSoup.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\formfill.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\html5parser.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\soupparser.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\usedoctest.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\_diffcommand.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\_html5builder.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\_setmixin.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\__init__.py -> build\lib.win32-3.4\lxml\html

creating build\lib.win32-3.4\lxml\isoschematron

copying src\lxml\isoschematron\__init__.py -> build\lib.win32-3.4\lxml\isoschematron

copying src\lxml\lxml.etree.h -> build\lib.win32-3.4\lxml

copying src\lxml\lxml.etree_api.h -> build\lib.win32-3.4\lxml

copying src\lxml\includes\c14n.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\config.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\dtdvalid.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\etreepublic.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\htmlparser.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\relaxng.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\schematron.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\tree.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\uri.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xinclude.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xmlerror.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xmlparser.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xmlschema.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xpath.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xslt.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\etree_defs.h -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\lxml-version.h -> build\lib.win32-3.4\lxml\includes

creating build\lib.win32-3.4\lxml\isoschematron\resources

creating build\lib.win32-3.4\lxml\isoschematron\resources\rng

copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win32-3.4\lxml\isoschematron\resources\rng

creating build\lib.win32-3.4\lxml\isoschematron\resources\xsl

copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl

copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl

creating build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_skeleton_for_xslt1.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

running build_ext

building 'lxml.etree' extension

C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'

  warnings.warn(msg)

error: Unable to find vcvarsall.bat

----------------------------------------
Cleaning up...
Command C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\CARTE_~1\\AppData\\Local\\Temp\\pip_build_carte_000\\lxml\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\CARTE_~1\AppData\Local\Temp\pip-l8vvrv9g-record\install-record.txt --single-version-externally-managed --compile failed with error code 1 in C:\Users\CARTE_~1\AppData\Local\Temp\pip_build_carte_000\lxml
Storing debug log for failure in C:\Users\carte_000\pip\pip.log

そこで、と呼ばれるこの素晴らしい便利なものに注目しました。インターネットと多くの人がlibxml2およびlibxlst。彼らは、Christoph Gohlkeのページという名前の男を勧めています。彼は、いくつかのパッケージに何らかのバイナリを提供しています。あなたはそれを見つけることができます ここlxml部分へのクイックリンク )。

そのため、pip用のlibxml2とlibxsltを見つけることをあきらめた後、そこに行くことに決め、絶対トンのダウンロードを見つけました。 64ビットのものが必要なことは知っていますが、どの「cp」が必要なのかわかりません。

したがって、pipメソッドまたはGohlkeインデックスメソッドの解決策を提供してくれる答えは素晴らしいでしょう。

21
spelchekr

まず、コメントに従って、lxml-3.4.2-cp34-none-win_AMD64.whlファイルを開き、pip install、しかし、それはちょうどそれが私のシステムまたは何かの有効なホイールファイルではないと私に言った。

次に、win_32ファイルとそれは働いた!たぶん、Intelプロセッサを搭載しているのは、AMD64が、AMDプロセッサ専用だからです。

12
spelchekr

または、 Christoph's Gohlke's Python page に移動してから、適切なlxmlファイルをダウンロードすることもできます(一般的にpython 3.4そして、私は窓を持っている、私はlxml-3.4.4-cp34-none-win32.whlをダウンロードする)

それが入っているフォルダーに移動します。バックグラウンドでクリックし(何も選択されていない)、左シフト+右クリックを同時に押して、開いているコマンドウィンドウをクリックします。次に、「C:/ Python34/Scripts/pip install "ダウンロードしたファイルの名前.whl"」と入力します

この場合、C:/ Python34/Scripts/pip install "lxml-3.4.4-cp34-none-win32.whl"になります

Enterキーを押します。これは私にとってはうまくいきました。引用を入力した後、Tabキーを押すこともできます。

22
Kenny Truong

これらの手順は、Python3.4 を使用するWindows7またはWindows8用です。

ただし/、pythonのリリースおよびその他の各前提条件の変更/進化に応じて、さまざまなバージョンで機能します。

  1. インストールPython3.4:
    1. ダウンロードページからPython3.4の最新リリースをダウンロードします [〜#〜] here [〜#〜]
    2. MSIを実行してpythonをインストールするだけです。レジストリに登録され、プログラムの追加と削除に表示されます。
    3. 注:以下の説明では、pythonインストールウィザードで求められたときに、PythonのデフォルトパスC:\python34\にインストールすることを選択したと仮定します。
  2. [コントロールパネル]> [システム]> [システムの詳細設定]リンクからこれらのディレクトリをPATH環境変数に追加して、C:\python33\およびC:\python34\scriptsフォルダをシステムパスに追加します( [詳細設定]タブ)> [環境変数(ボタン)]。
  3. インストールOpenSSL:
    1. Win32 OpenSSL page [〜#〜] here [〜#〜] からWindowsおよびPCアーキテクチャのバージョンにダウンロードします
    2. WindowsおよびPCアーキテクチャのバージョンに対応した Visual C++ 2008 redistributables をダウンロードします。
    3. Windowsおよびアーキテクチャのバージョン(ライトバージョンではなく通常バージョン)の OpenSSL をダウンロードします。
    4. 上記のc:\openssl-win32\binおよびC:\python34を追加したのと同じ方法で、C:\python34\scripts(または同様の)ディレクトリをPATHに追加します。
  4. Setuptoolsget-pip.pyはSetuptoolsをインストールする必要があります)をインストールしますが、念のため...
    1. ez_setup.py[〜#〜] here [〜#〜] をダウンロードして、C:\python34\scriptsに保存します
    2. C:\python34\scripts> python ez_setup.pyを実行します
  5. インストールPIP
    1. [〜#〜] here [〜#〜] からget-pip.pyをダウンロードし、C:\python34\scriptsに保存します
    2. C:\python34\scripts> python get-pip.pyを実行します
  6. インストールLXML
    1. LXML 3.4.4[〜#〜] here [〜#〜] からダウンロードします(WindowsおよびPCアーキテクチャのバージョン用)
    2. EXEファイルを実行する
2
Flak DiNenno

私も最近この問題に出会いました。 pipは.whlファイルでは機能しません。これを修正する代わりに、.exeファイルを使用してインストールします。 here からダウンロードできます。正しいバージョンのpythonを選択してください。これがあなたのお役に立てば幸いです。

2
Zik

2018年の今日のように、lxmlはPyPIからインストールできます:

C:\Users\Administrator>"c:\Program Files\Python37\python.exe" -m pip install -U pip wheel setuptools
Collecting pip
  Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 3.3MB/s
Collecting wheel
  Downloading https://files.pythonhosted.org/packages/5a/9b/6aebe9e2636d35d1a93772fa644c828303e1d5d124e8a88f156f42ac4b87/wheel-0.32.2-py2.py3-none-any.whl
Collecting setuptools
  Downloading https://files.pythonhosted.org/packages/96/06/c8ee69628191285ddddffb277bd5abdf769166e7a14b867c2a172f0175b1/setuptools-40.4.3-py2.py3-none-any.whl (569kB)
    100% |████████████████████████████████| 573kB 2.9MB/s
Installing collected packages: pip, wheel, setuptools
  Found existing installation: pip 10.0.1
    Uninstalling pip-10.0.1:
      Successfully uninstalled pip-10.0.1
  The script wheel.exe is installed in 'c:\Program Files\Python37\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  Found existing installation: setuptools 39.0.1
    Uninstalling setuptools-39.0.1:
      Successfully uninstalled setuptools-39.0.1
Successfully installed pip-18.1 setuptools-40.4.3 wheel-0.32.2

C:\Users\Administrator>pip install lxml
Collecting lxml
  Downloading https://files.pythonhosted.org/packages/d7/9d/1aa28aa9d293a816baec6c37328d6465b722b2ff3f4d1e93ed56e87813ee/lxml-4.2.5-cp37-cp37m-win_AMD64.whl (3.6MB)
    100% |████████████████████████████████| 3.6MB 1.6MB/s
Installing collected packages: lxml
Successfully installed lxml-4.2.5

C:\Users\Administrator>python
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from io import BytesIO
>>> some_file_or_file_like_object = BytesIO(b"<root>data</root>")
>>> from lxml import etree
>>> tree = etree.parse(some_file_or_file_like_object)
>>> etree.tostring(tree)
b'<root>data</root>'
1
George Sovetov

Lxml == 4.2.1をリストした要件ファイルでこの問題が発生しました。ただし、これをlxml == 4.2.5に更新することで問題を修正できました。

1
Roger Iyengar

ディストリビューターのWebサイトからの正しいコマンドは次のとおりです。

pip install lxml==3.4.4

もちろん、最新バージョンに合わせてバージョン番号を更新してください。

リファレンス: https://pypi.org/project/lxml/3.4.4/

0
Eli