標籤:

Python LXML模塊死活安裝不了怎麼辦?

因為要學Scrapy框架來寫爬蟲,可是每次都是出現這個錯誤:

/private/tmp/pip_build_root/lxml/src/lxml/includes/etree_defs.h:14:10: fatal error: libxml/xmlversion.h file not found

#include "libxml/xmlversion.h"

^

1 error generated.

error: command /usr/bin/clang failed with exit status 1

----------------------------------------

Cleaning up...

Command /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c "import setuptools, tokenize;__file__=/private/tmp/pip_build_root/lxml/setup.py;exec(compile(getattr(tokenize, open, open)(__file__).read().replace(
,
), __file__, exec))" install --record /tmp/pip-ABNSEN-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /private/tmp/pip_build_root/lxml

Storing debug log for failure in /Users/CraxDc/.pip/pip.log

#include "libxml/xmlversion.h"

^

1 error generated.

error: command /usr/bin/clang failed with exit status 1

已經百度谷歌一個下午了,能找到的方法都試過了。Stackoverflow論壇的問題也看過了,都是解決不了。


剛從這個大坑裡爬出來:

1. 安裝wheel,命令行運行:

pip install wheel

2.在這裡下載對應的.whl文件,注意別改文件名! http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml

3. 進入.whl所在的文件夾,執行命令即可完成安裝

pip install 帶後綴的完整文件名


首先請確認安裝了xcode commond line tool 也就是xcode的命令行工具,因為編譯lxml需要用到cc 等命令

所以先在命令行輸入

xcode-select --install

安裝完命令行工具 用pip來安裝你所需要的lxml

這時候如果提示頭文件未找到的話 用locate命令定位一下頭文件的位置

locate xmlversion.h

初次使用locate命令會提示安裝

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

安裝一下就好了

之後定位到了locate之後 設置一下環境變數

export C_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/

那麼在編譯lxml的時候 就自動會到這個路徑下搜索頭文件

然後pip install 就可以啦。

另外如果系統裝了幾個版本的xcode 那麼列印看好xcode的路徑

sudo xcode-select -p

如果想切換到另一個xcode路徑下 可以考慮在bash.profile進行全局的設置

或者在終端設置變數

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/

或者

export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer

如果這些安裝完了之後,最後引用Scrapy包得時候報錯

請嘗試刪除

cd /Library/Python/2.7/site-packages/
sudo rm -rf six*

如果是Mac OSX 10.11 有可能會報錯 因為mac系統多了sip 關閉sip就OK了

具體關閉方法請百度

基本我就踩到了這些坑。


新的OSX10.11.5, 安裝lxml庫,可以用下面的命令:

1. 安裝brew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 安裝lxml:

brew install libxml2
brew install libxslt
brew link libxml2 --force
brew link libxslt --force

3. pip install lxml

4. pip install scrapy


這問題沒那麼神秘吧,你要先安裝lxml2的c庫。這是安裝python實現的時候找不到它要封裝的c實現在哪裡。


ubuntu下直接 sudo apt-get install python-lxml就行了


補充一下 @深海魚 的答案。

1.step 1

我按照深海魚的答案去做之後,還是不行。

cmd 運行 pip install filename.whl 還是報錯, 提示:

lxml-3.7.1-cp27-cp27m-win32.whl is not a supported wheel on this platform.

2.step 2

然後我跑去stackoverflow搜到了這個答案:

filename.whl is not supported wheel on this platform

然後一哥們回答他遇到過同樣的問題,然後升級 pip 完美解決。

python -m pip install --upgrade pip

3.step 3

然後我升級了 pip ,還是不行。

原因是我安裝的是

lxml-3.7.1-cp27-cp27m-win_amd64.whl

然後繼續從 step2 的 StackOverflow 的回答中找到了答案。有一哥們回答他遇到了一模一樣的問題,pip也升級了,但是還是報錯:

scipy-0.17.0-cp35-none-win_amd64.whl is not supported wheel on this platform

然後那哥們說:「realized that amd64 is not about my Windows, but about the Python version. Actually I am using a 32 bit Python on a 64 bit Windows. Installing the following file solved the issue(amd64跟系統無關,跟Python的版本有關係。雖然他的電腦是64位,但是他的Python版本是32位,於是他裝了32位的.whl 文件,然後成功了):

scipy-0.17.0-cp35-none-win32.whl

4. step 4

於是我就按照他的做法,安裝32位的,果然成功。如下:

D:spider&>pip install lxml-3.7.1-cp27-cp27m-win32.whl
Processing d:spiderlxml-3.7.1-cp27-cp27m-win32.whl
Installing collected packages: lxml
Successfully installed lxml-3.7.1


在mac 打開終端運行命令:xcode-select --install

再重試


STATIC_DEPS=true sudo pip install lxml

試試這個?


所以說,不會c語言是萬萬不行的。提示這麼明顯了,缺少頭文件,那就去安裝lxml的dev版本,頭文件就有了


缺少頭文件,直接去下載lxml安裝版即可

https://pypi.python.org/pypi/lxml/2.3/


xcode-select --install

10.11親測有效。


我就說一句,記得升級pip……


  1. xcode-select --install 已成功


是不是裝了Python3?


我用的是mac,也是死活裝不了,剛剛成功,辦法:裝的3.5.0版本的,最新的4.1.1.1版本是什麼方法都試了,就是裝不了。


在ubuntu14.04上面 ,我是多個版本共存,使用python3 通過pip安裝 lxml , python3 -m pip install lmx的時候,遇到相似的問題,使用sudo apt-get install python3.5-dev 解決問題


分頁阅读: 1 2