ScrapyをインストールできるようにLxmlをインストールしたいです。
私が今日私のMacをアップデートしたとき、それは私がlxmlを再インストールさせないでしょう、私は以下のエラーを得ます:
In file included from src/lxml/lxml.etree.c:314:
/private/tmp/pip_build_root/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found
#include "libxml/xmlversion.h"
^
1 error generated.
error: command 'cc' failed with exit status 1
Brewを使ってlibxml2とlibxsltをインストールしようとしました。どちらも正常にインストールされましたが、それでもlxmlをインストールすることはできません。
前回インストールしたときは、Xcodeの開発者ツールを有効にする必要がありましたが、Xcode 5に更新されてからは、このオプションはもう必要ありません。
誰かが私がしなければならないことを知っていますか?
Xcodeのコマンドラインツールをインストールまたはアップグレードする必要があります。ターミナルでこれを試してください:
xcode-select --install
libxml2
とlibxslt
をインストールしてbrewでリンクすることで、Yosemiteでこの問題を解決しました。
brew install libxml2
brew install libxslt
brew link libxml2 --force
brew link libxslt --force
この方法を使用して問題を解決したが、後でもう一度表示される場合は、上記の4行でbeforeを実行する必要があります。
brew unlink libxml2
brew unlink libxslt
Homebrewに関して、特にEl Capitanに関してパーミッションエラーがある場合は これは役に立つドキュメントです 。基本的に、OS Xのバージョンに関係なく、実行してみてください。
Sudo chown -R $(whoami):admin /usr/local
あなたはコマンドラインでこれを実行することによってあなたの問題を解決するかもしれません:
STATIC_DEPS=true pip install lxml
それは確かに私を助けました。 docs についての説明
私は上記の解決策のほとんどを試してみましたが、それらのどれも私のために働きませんでした。私はヨセミテ10.10を実行しています。私のために働いた唯一の解決策は端末でこれをタイプすることでした:
Sudo CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install lxml
編集:あなたがvirtualenvを使用している場合、初めにSudoは必要ありません。
これはしばらく私を悩ませています。私はPythonのdistutilsなどについての内部を十分に知りませんが、ここでのインクルードパスは間違っています。私はPythonのLXMLの人々が適切な修正を行うことができるまで私を保持するために私は次の醜いハックをしました。
Sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2/libxml/ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml
グローバルにインストールしています... OS X 10.9.2
xcode-select --install
Sudo easy_install pip
Sudo CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install lxml
インストール手順 http://lxml.de/installation.html 説明:
テスト環境でのビルドをスピードアップする継続的インテグレーションサーバーでは、CFLAGS環境変数を設定してCコンパイラ最適化を無効にします。
CFLAGS="-O0" pip install lxml
上記のどれも10.9.2で私のために働きませんでした、コンパイルが以下のエラーで救済するので:
clang: error: unknown argument: '-mno-fused-madd'
これは実際に最もクリーンな解決策につながります([1]の詳細を参照)。
export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
pip install lxml
またはグローバルにインストールする場合はフォロー
Sudo pip install lxml
xcode-select --install
Sudo easy_install pip
Sudo pip install lxml
私は以下のコマンドを実行することによってYosemite
でこの問題を解決しました:
xcode-select install #this may take several minutes.
pip install lxml
自作では、libxml2はシステムのlibxml2を妨害しないように隠されているので、pipはそれを見つけるために少し助けられなければなりません。
Bash付き:
LDFLAGS=-L`brew --prefix libxml2`/lib CPPFLAGS=-I`brew --prefix libxml2`/include/libxml2 pip install --user lxml
魚と:
env LDFLAGS=-L(brew --prefix libxml2)/lib CPPFLAGS=-I(brew --prefix libxml2)/include/libxml2 pip install --user lxml
残念ながらxcode-select --install
は私にとっては最新のバージョンをすでに持っているのでうまくいきませんでした。
非常に奇妙ですが、私はXCodeを開いて利用規約に同意することで問題を解決しました。 pip install lxml
を再実行してもエラーが返されませんでした。
私はこのページのすべての答えを試しました、それらのどれも私のために働きませんでした。 OS Xバージョン10.9.2を実行しています
しかし、これは間違いなく機能します....魅力のように:
ARCHFLAGS = -Wno-error =未使用のコマンドライン引数 - 将来のハードエラーpip install lxml
OSX 10.9.2
Sudo env ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future STATIC_DEPS=true pip install lxml
私の場合、lxmlをインストールする前にKaspersky Antivirusをシャットダウンする必要があります。
pip install lxml
Pipからのインストールが成功した後(lxml 3.6.4)、lxml.etreeモジュールをインポートするとエラーになりました。
私はscrapyの必要条件としてこれをインストールするために際限なく検索していました、そして、すべてのオプションを試しました、しかし最終的にこれは私のために働きました(mac osx 10.11 python 2.7):
$ STATIC_DEPS=true Sudo easy_install-2.7 "lxml==2.3.5"
古いバージョンのlxmlはetreeモジュールで動作するようです。
たとえば、ピップキャッシュに新しいバージョン、つまりeasy_install
がある場合など、Pipは指定されたバージョンのパッケージを無視することがよくあります。 '-2.7'
オプションはpythonバージョン用です。python 3.x用にインストールする場合はこれを省略してください。
髪を何度も引き裂いて歯をかじった後、私はpcodeでxcodeをアンインストールして実行しました。
easy_install lxml
そしてすべてが順調でした。
この記事は私のために働いていたソリューションへのリンク Python 3、lxmlそしてMac OS X 10.9の "Symbol not found:_lzma_auto_decoder"
hth
コンパイルする前に、xmlversion.hへのパスを環境に追加してください。
$ set INCLUDE=$INCLUDE:/private/tmp/pip_build_root/lxml/src/lxml/
しかし、私が提供したパスの中にxmlversion.hファイルがあることを確認してください。その後、
$ python setup.py install
pip
は私にとってはうまくいきませんでした。 https://pypi.python.org/pypi/lxml/2. に行き、macosxの.Eggファイルをダウンロードしました。
次に、コマンドラインeasy_install
を使用して.Egg
ファイルをインストールしました。
OSX 10.9.2を使用していますが、同じエラーが発生します。
XCodeコマンドラインツールをインストールしても、この特定のバージョンのOSXには役立ちません。
私はこれを直すより良い方法は次のコマンドでインストールすることだと思います:
$ CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 pip install lxml
これはjdkoftinoffの修正に似ていますが、システムを恒久的な方法で変更することはありません。
私は同じ質問に答えました、そして、仕事の数日後に私は私のOS X 10.9.4、Python 3.4.1でこの問題を解決しました。
これが私の解決策です、
によるとlxml.deから lxmlのインストール によると、
Lxmlのmacportが利用可能です。 port install py25-lxmlのようなものを試してください
MacPortを持っていないなら、 MacPort.org からインストールしてください。とても簡単です。 XCodeのコンパイルツールをインストールするには、コンパイラも必要です。xcode-select --install
まず、Sudo port selfupdate
で私の移植を最新版に更新しました、
それでは、Sudo port install libxml2
と入力するだけで、数分後にlibxml2が正常にインストールされます。おそらくlxmlをインストールするのにlibxslt
も必要でしょう。 libxsltをインストールするには、Sudo port install libxslt
を使用します。
さて、pip install lxml
と入力するだけで、うまくいきます。