Mac OS X 10.9에서 Lxml을 설치할 수 없습니다


234

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로 업데이트 된 이후 더 이상 해당 옵션을 제공하지 않습니다.

누구든지 내가해야 할 일을 알고 있습니까?


3
추신 : Python3의 특정 설치를 대상으로하는 경우 pip3.4 install lxml또는 STATIC_DEPS=true pip3.4 install lxml명령을 사용하는 것이 좋습니다 (버전에 맞게 bash TAB 완성은 친구입니다). 이 /이 라이브러리를 사용하는 특정 버전의 대상 프로그램에 설치하십시오. 그렇지 않으면 잘못된 인터프리터를 위해 lib를 설치하는데 3 천만 달러를 쓰는 것이 쉽다;;)
Phil L.

3
다른 사람들이 같은 문제가있을 때 질문을 지침으로 사용할 수 있도록 정답을 해결책으로 표시하십시오.)
Parker

답변:


500

xcode 용 명령 줄 도구를 설치하거나 업그레이드해야합니다. 터미널에서 이것을 시도하십시오 :

xcode-select --install

24
"현재 소프트웨어 업데이트 서버에서 소프트웨어를 사용할 수 없기 때문에 소프트웨어를 설치할 수 없습니다."
kelorek

7
"현재 소프트웨어 업데이트 서버에서 소프트웨어를 사용할 수 없기 때문에 소프트웨어를 설치할 수 없습니다."라는 메시지가 표시됩니다. 도구가 이미 설치되어있을 때
wombat

- 설치되어있는 경우 수동으로 확인하는 방법에 대한 몇 가지 참고 사항 stackoverflow.com/a/20834890/255961
studgeek

1
10.10.3에서 잘 작동합니다. 왜 다른 사람들이 cflags를 조작해야하는지 잘 모르겠습니다.
Eric Chen

1
El Capitan (10.11)으로 업그레이드 한 후 나를 위해 일했습니다.
Łukasz

193

설치 및 연결 libxml2libxslt추출을 통해 Yosemite 에서이 문제를 해결했습니다 .

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

이 방법을 사용하여 문제점을 해결했지만 나중에 다시 팝업이 표시 되면 위의 네 줄 전에 이를 실행해야합니다 .

brew unlink libxml2
brew unlink libxslt

Homebrew, 특히 El Capitan에서 권한 오류가 발생하면이 문서가 도움이됩니다 . 본질적으로 OS X 버전에 관계없이 다음을 실행하십시오.

sudo chown -R $(whoami):admin /usr/local

24
가장 유용한 답변입니다. xcode-select가 얼마나 많은 표를 얻는지는 놀라운 일입니다. brew를 사용하는 경우 이미 오래 전에 code-select 또는 xcode를 설치했습니다.
Marcos Eliziário Santos 20시 44 분

5
@ MarcosEliziárioSantos "install"이라는 단어 xcode-select --install는 약간 오해의 소지가 있습니다. Mavericks에서 Yosemite xcode-select --install로 업그레이드 한 후 Yosemite의 명령 줄 도구로 업그레이드하기 위해 다시 실행 해야한다는 것을 알았습니다 . 그것은 (부분적으로) 내가 겪고있는 문제를 해결했으며 어쨌든 중복 적으로 실행하는 것은 무해합니다.
Noach Magedman

2
@ MarcosEliziárioSantos는 아마도 최고의 답변이 대부분의 사람들에게 문제를 해결했기 때문일 것입니다. 이 솔루션은 해결 방법으로 작동했지만 몇 초 후에 libmemcache와 비슷한 문제가 발생했습니다. 최고 답변은 문제를 해결했습니다. 모든 사람은 우선 답변을 먼저 시도한 후에 만이 방법을 고려해야합니다.
Rafal Es

@ MarcosEliziárioSantos 한 가지 더-brew를 사용하고 있지만 새로 설치했습니다 (AppStore를 통해 XCode 만 설치 했으므로 homebrew를 설치하기에 충분합니다).
Rafal Es

또한 Homebrew는 항상 내 권한을 망칩니다. Xcode 솔루션을 사용했습니다.
sudo

102

명령 행에서이를 실행하여 문제점을 해결할 수 있습니다.

 STATIC_DEPS=true pip install lxml

확실히 나를 도왔다. 문서 에 대한 설명


정말 고맙습니다. 이로 인해 엄청나게 많은 시간이 절약되었습니다.
lukecampbell

OSX 10.9.5에서 제대로 작동
user9869932

감사! macOS 10.14에서 작동
jolvera

48

위의 대부분의 솔루션을 시도했지만 그중 아무것도 나를 위해 일하지 않았습니다. 요세미티 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가 필요하지 않습니다.


1
이 솔루션은 Mavericks에서도 작동합니다! 사용 virtualenv하지 않는 경우 sudo가 필요하지 않습니다.
Mauro Baraldi

OSError: [Errno 1] Operation not permitted: '/usr/bin/build'sudo로 명령을 실행하더라도 광산은 여전히 ​​출력 중입니다. 어떤 아이디어?
PLPeeters

@PLPeeters 어떤 버전의 파이썬과 어떤 OS 버전을 실행하고 있습니까?
robinsj

나는 엘 캐피 탄 베타 (10.11)에 파이썬 2.7을 사용하고 있습니다. 엘 캐피 탄과 관련이있을 것 같아요.
PLPeeters

당신은 생명의 은인입니다. El Capitan은 virtualenv에서 작동하며 sudo가 필요하지 않습니다. 감사!
jacoor

24

이것은 잠시 동안 나를 귀찮게하고 있습니다. 파이썬 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

19

전체적으로 설치 ... 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

1
이것은 나를 위해 일했고 xcode dev 도구를 먼저 다음을 사용하여 업데이트해야했습니다. xcode-select --install
erickthered

이 트릭을했다. 이미 xcode 명령 줄 도구가 설치되어 있지만 업데이트해야 할 것 같습니다.
Steven Mercatante


11

위의 어느 것도 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

[1] clang 오류 : 알 수없는 인수 : '-mno-fused-madd'(파이썬 패키지 설치 실패)


감사. 이것은 나를 도왔다. 희망 답변은 때로는 OS 버전에 대한 메타를 포함 할 수 있습니다.
frankV

전 세계적으로 설치하는 경우 당신이해야 할 수도 /etc/sudoerssudo visudo환경 변수를 보존 할 수 있습니다.
swandog

10
xcode-select --install
sudo easy_install pip
sudo pip install lxml

일부 사람들 sudo은 pip 설치에 필요한 반면 다른 사람들은 그렇지 않은 것이 흥미 롭습니다 . (pip install을 직접 실행할 때 권한 문제가 있었고 sudo해야했습니다.) 먼 과거에 root와 같은 python 관련 항목을 설치했다고 가정 할 수 있습니다.
Noach Magedman

이것은 나를 위해 일했고, 방금 새 Mac을 설정했으며 XCode를 설치했지만 명령 줄 도구를 설치하지 않았다고 생각합니까? 어쨌든, 이것을 실행하고 도구를 설치 한 다음 'pip3.4 install lxml --user'를 다시 실행하면 sudo가 없거나 쉘 변수를 내 보내지 않습니다.
mgrandi

이것은 virtualenv에서 Yosemite에서 완벽하게 작동했습니다. 나는 필요하지 않았다 sudo.
NILS

@NoachMagedman 가상 환경에 설치하고 있으므로 sudo를 사용할 수 없습니다. sudo를 사용하면 전역 파이썬 패키지에 설치하고 피하려고합니다.
Esteban

6

Yosemite다음 명령을 실행 하여이 문제를 해결했습니다 .

xcode-select install #this may take several minutes.
pip install lxml

나는 오래된 시스템에서 엉킨 엉망진창을 만들어내는 충분한 양조가 있었기 때문에 새로운 Yosemite 10.10.2 설정과 함께 사용하지 않기로 맹세했습니다. 이미 전체 Xcode 패키지를 설치 했으므로 필요하지 않습니다 xcode-select install. 최신 libxml2 및 libxlst 패키지 (lxml에 필요)를 다운로드했지만 설치하기 전에 Yosemite에 이미 해당 파일이 있는지 확인해야한다고 생각했습니다. virtualenvwrapper를 사용하여 가상 env를 만든 다음 수행 pip install lxml했으며 lxml은 오류가 무료로 설치되었습니다. Google 홈페이지를 긁어 lxml을 테스트했는데 정상적으로 작동했습니다.
7stud

4

homebrew를 사용하면 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

2

OSX 10.9.2

sudo env ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future STATIC_DEPS=true pip install lxml

2

이 페이지의 모든 답변을 시도했지만 아무도 나를 위해 일하지 않았습니다. OS X 버전 10.9.2를 실행하고 있습니다

그러나 이것은 확실히 매력처럼 작동합니다.

ARCHFLAGS = -Wno-error = 미사용 명령 줄 인수-하드-미래 오류


1
이것은 OS X Mavericks에서 다른 많은 라이브러리 컴파일 중에 발생한 미사용 인수에 대한 하드 오류를 비활성화합니다. 나는 내가 그것을 발생할 때마다 그것을보고하지 않아도 유용, 내 bash는 프로필에 줄을 추가 발견했습니다 export ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future"또는 당신은 다음과 같이 명시 적으로 아키텍처 유형을 추가 할 수 있습니다 :export ARCHFLAGS="-arch x86_64 -arch i386 -Wno-error=unused-command-line-argument-hard-error-in-future"
미키 엘 Kauw-A-Tjoe

2

불행히도 xcode-select --install나는 이미 최신 버전을 가지고 있었기 때문에 나를 위해 작동하지 않았습니다.

매우 이상하지만 XCode를 열고 이용 약관에 동의하여 문제를 해결했습니다. 재실행 pip install lxml후 오류가 발생하지 않았습니다.


1

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 모듈에서 작동하는 것 같습니다.

Pip은 종종 지정된 버전의 패키지를 무시할 수 있습니다 (예 : pip 캐시에 최신 버전이있는 경우) easy_install. '-2.7'당신은 파이썬 3.x를 위해 설치하는 경우 옵션은 파이썬 버전입니다,이 생략


1

제 경우에는 다음을 통해 lxml을 설치하기 전에 Kaspersky Antivirus종료 해야합니다 .

pip install lxml

0

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의 수정과 유사하지만 시스템을 영구적으로 변경하지는 않습니다.


0

나는 같은 질문을 만났고 며칠 동안 일한 후에 Python 3.4.1을 사용하여 OS X 10.9.4 에서이 문제를 해결했습니다.

여기 내 해결책이 있습니다.

lxml.de에서 lxml설치 하면

lxml의 macport를 사용할 수 있습니다. 포트 설치 py25-lxml과 같은 것을 시도하십시오

당신이 MacPort이없는 경우에서 설치 MacPort.org . 아주 쉽습니다. XCode 컴파일 도구를 설치하려면 컴파일러가 필요할 수도 있습니다.xcode-select --install

먼저을 통해 포트를 최신 버전으로 업데이트했습니다 sudo port selfupdate.

그런 다음 입력 sudo port install libxml2하고 몇 분 후에 libxml2가 성공적으로 설치되었습니다. libxsltlxml을 설치 해야 할 수도 있습니다 . libxslt를 설치하려면 다음을 사용하십시오 sudo port install libxslt.

이제 그냥 입력 pip install lxml하면 제대로 작동합니다.


0

컴파일하기 전에 xmlversion.h에 대한 경로를 환경에 추가하십시오.

$ set INCLUDE=$INCLUDE:/private/tmp/pip_build_root/lxml/src/lxml/

그러나 내가 제공 한 경로에 xmlversion.h 파일이 있는지 확인하십시오. 그때,

$ python setup.py install



0

머리카락이 많이 찢어지고 치아가 찢어지면 pip로 xcode를 제거하고 실행했습니다.

easy_install lxml

그리고 모든 것이 잘되었습니다.


-1

시험:

% STATIC_DEPS=true pip install lxml

또는:

% STATIC_DEPS=true sudo pip install lxml

효과가있다!


Andre의 답변이 중복되었습니다.
Kar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.