2013-07-25 57 views
10

我在安裝lxml到我的Mac OS時遇到問題。 構建它時出現以下錯誤。未能在MacOS中安裝lxml 10.8.4

brew install libxml2 
brew link libxml2 --force 

我是新至Mac:使用pip install lxml

/private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found

我已經安裝的libxml2與沖泡時,這是我的錯誤。在Ubuntu中,這意味着必須安裝libxml2-dev軟件包。

更新:這裏是pip.log:

"~/.pip/pip.log" 124L, 8293C requirement_set.install(install_options, global_options, root=options.root_path) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 1185, in install requirement.install(install_options, global_options, *args, **kwargs) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 592, in install cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/util.py", line 662, in call_subprocess % (command_desc, proc.returncode, cwd)) InstallationError: Command /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c "import setuptools;file='/private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml/setup.py';exec(compile(open(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-nsV0iT-record/install-record.txt --single-version-externally-managed failed with error code 1 in /private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml

任何想法? 非常感謝

+0

是否有錯誤消息在'〜/將該.pip/pip.log'?用'brew'安裝'libxml2'後,你在'/ usr/include/libxml2/libxml'中看到了正確的頭文件嗎? libxml2'頭文件是否在你的路徑上? – ChrisP

+0

@ChrisP,我用日誌更新了我的問題。我的機器中沒有/ usr/include文件夾。 –

+0

希望有人來過,誰知道發生了什麼事。我現在唯一的建議是確保可以通過PATH訪問libxml2頭文件。 Homebrew應該默認安裝到'/ usr/local',它在PATH上。你能在你的機器上找到'xmlversion.h'文件,只是爲了確保它在那裏?如果你一直有問題,我推薦[Enthought](http://www.enthought.com)Python發行版,默認情況下很多工具很難創建(包括'lxml')。我知道這並不能解決你確切的問題。 – ChrisP

回答

21

轉出xmlversion.h不包含在編譯路徑中,即使它在PATH中。修改C_INCLUDE_PATH ENV修復錯誤對我來說:

C_INCLUDE_PATH=/usr/local/Cellar/libxml2/2.9.1/include/libxml2:$C_INCLUDE_PATH

+3

對於任何人而言,這只是一個小竅門:我遇到了同樣的問題,這就是修復。 'export C_INCLUDE_PATH =/usr/local/Cellar/libxml2/2.9.1/include/libxml2:$ C_INCLUDE_PATH''' – zgohr

+0

這爲我在10.9上編譯lxml和libxml2的自裝版本。謝謝! – synthesizerpatel

+0

如果您使用的是macports,請輸入:export C_INCLUDE_PATH =/usr/local/include/libxml2:$ C_INCLUDE_PATH – Petri

19

如果您正在運行安裝了Xcode的小牛,你也可以使用:

export C_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/libxml2:$C_INCLUDE_PATH 
+0

使用Xcode 6,此命令現在是:export C_INCLUDE_PATH =/Applications/Xcode.app // Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2:$ C_INCLUDE_PATH – Markus

+4

對於OSX Yosemite,它現在是「export C_INCLUDE_PATH =/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2:$ C_INCLUDE_PATH'' –

4
brew install libxml2 
brew link libxml2 --force 
export C_INCLUDE_PATH=/usr/local/Cellar/libxml2/2.9.2/include/libxml2:$C_INCLUDE_PATH 
+2

please ,爲你的代碼提供一個解釋 – arghtype

+0

在10.10.2上不起作用 – Bryson

5

其他的答案無(出口C_INCLUDE_PATH)爲我工作。但是,將CFLAGS環境變量設置爲內置OS X 10.10 libxml2 root就像一個魅力一樣。

export CFLAGS=-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 
+1

這是我在10.10.2上用Fish shell工作的那個。我首先打開了一個'bash' shell,然後在這裏列出'export',然後重新運行'pip install lxml'並且安裝成功完成。謝謝丹! –

+1

@ NickK9很高興我能幫忙! –

+0

同樣在這裏,這是唯一一個在10.10.2上工作的人 –

5

我已經Python和libxml的通過釀造安裝,這個工作對我來說嘗試上述一切後:

sudo mkdir /usr/include # If /usr/include is missing 
sudo ln -s /usr/local/Cellar/libxml2/2.9.2/include/libxml2 /usr/include/libxml2 

注意:您需要檢查自己的路徑,最新版本。

由於頭文件在其他地方可用,並在特定的目錄中查找(發現在命令中調用clang進行編譯) - 由於某種原因沒有選擇替代位置,我在右邊做了一個軟鏈接地點。