Mac OS X 10.9 पर Lxml स्थापित नहीं कर सकता


234

मैं Lxml स्थापित करना चाहता हूं ताकि मैं फिर स्क्रैपी स्थापित कर सकूं।

जब मैंने अपना मैक अपडेट किया तो यह मुझे 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

मैंने libxml2 और libxslt को स्थापित करने के लिए काढ़ा का उपयोग करने की कोशिश की है, दोनों ने ठीक स्थापित किया है लेकिन मैं अभी भी lxml स्थापित नहीं कर सकता।

पिछली बार जब मैं स्थापित कर रहा था, तो मुझे Xcode पर डेवलपर टूल को सक्षम करने की आवश्यकता थी, लेकिन जब से Xcode 5 में अपडेट किया गया, तब से मुझे वह विकल्प नहीं मिला।

क्या किसी को पता है कि मुझे क्या करने की आवश्यकता है?


3
पुनश्च: मैं उपयोग करने की सलाह देता हूं: pip3.4 install lxmlया STATIC_DEPS=true pip3.4 install lxmlयदि आप Python3 के लिए विशिष्ट इंस्टॉलेशन को लक्षित कर रहे हैं (तो अपने संस्करण के अनुसार, bash TAB पूरा करना आपका मित्र है); ताकि आप अपने टारगेट प्रोग्राम के उस विशिष्ट संस्करण के लिए इंस्टॉल करें जो इस / इन कामों का उपयोग कर रहा है। वरना गलत व्याख्या करने वाले के लिए काम करने वाले 30mn को खर्च करना आसान है ;-)
Phil L.

3
समाधान के रूप में सही उत्तर को चिह्नित करना सुनिश्चित करें ताकि अन्य लोग आपके प्रश्न का मार्गदर्शन के रूप में उपयोग कर सकें जब उन्हें एक ही समस्या हो :)
पार्कर

जवाबों:


500

आपको xcode के लिए कमांडलाइन टूल इंस्टॉल या अपग्रेड करना चाहिए। इसे किसी टर्मिनल में आज़माएं:

xcode-select --install

24
मुझे "सॉफ़्टवेयर स्थापित नहीं किया जा सकता क्योंकि यह वर्तमान में सॉफ़्टवेयर अपडेट सर्वर से उपलब्ध नहीं है।"
kelorek

7
यह ध्यान देने योग्य है कि आपको लगता है कि "सॉफ़्टवेयर स्थापित नहीं किया जा सकता है क्योंकि यह वर्तमान में सॉफ़्टवेयर अपडेट सर्वर से उपलब्ध नहीं है।" जब उपकरण पहले से ही स्थापित हैं।
गर्भ

मैन्युअल रूप से स्थापित होने पर कुछ नोट्स कैसे जांचें - stackoverflow.com/a/20834890/255961
studgeek

1
10.10.3 पर ठीक काम करता है। सुनिश्चित नहीं हैं कि दूसरों को cflags में हेरफेर करने की आवश्यकता क्यों है।
एरिक चेन

1
और एल कैपिटन (10.11) में अपग्रेड करने के बाद मेरे लिए काम किया।
.सुकस

193

मैं दोनों को स्थापित करने और जोड़ने के द्वारा Yosemite पर इस समस्या का हल libxml2और libxsltकाढ़ा के माध्यम से:

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

यदि आपने इस पद्धति का उपयोग करके समस्या को हल कर लिया है, लेकिन यह बाद में फिर से पॉप अप करता है, तो आपको इसे चार लाइनों से पहले चलाने की आवश्यकता हो सकती है :

brew unlink libxml2
brew unlink libxslt

यदि आप होमब्रे के साथ विशेष रूप से एल कैपिटान पर अनुमति त्रुटियां कर रहे हैं, तो यह एक सहायक दस्तावेज है । संक्षेप में, OS X संस्करण की परवाह किए बिना, चलने का प्रयास करें:

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

24
सबसे उपयोगी जवाब। यह अविश्वसनीय है कि कैसे xcode- चयन को इतने वोट मिले। यदि आप काढ़ा का उपयोग कर रहे हैं, तो आपने बहुत पहले ही कोड-चयन या एक्सकोड स्थापित किया था।
मार्कोस एलिसियोइरियो सैंटोस

5
@ MarcosEliziárioSantos "इनस्टॉल" शब्द xcode-select --installथोड़ा भ्रामक है। मैंने पाया कि Mavericks से Yosemite में अपग्रेड करने के बाद, मुझे xcode-select --installYosemite के कमांड लाइन टूल्स में अपग्रेड करने के लिए फिर से चलने की आवश्यकता थी । यह (आंशिक रूप से) हल की गई समस्याएं जिन्हें मैं चला रहा था, और किसी भी मामले में अनावश्यक रूप से चलाने के लिए हानिरहित होगा।
नोआच मर्दमैन

2
@ MarcosEliziárioSantos शायद क्योंकि शीर्ष उत्तर ने ज्यादातर लोगों के लिए समस्या तय कर दी। इस समाधान ने वर्कअराउंड के रूप में काम किया, लेकिन मैं कुछ सेकंड बाद libmemcache के साथ समान समस्याओं में भाग गया। शीर्ष उत्तर ने समस्या को ठीक कर दिया। पहले शीर्ष उत्तर का प्रयास करने के बाद ही सभी को इस विधि पर विचार करना चाहिए।
रफाल Es

@ MarcosEliziárioSantos एक और बात - मैं काढ़ा का उपयोग कर रहा हूँ, लेकिन यह एक ताज़ा स्थापित था (मैं केवल AppStore के माध्यम से XCode स्थापित किया था, जो होमब्रे को स्थापित करने के लिए पर्याप्त है)।
रफाल

इसके अलावा, Homebrew हमेशा मेरी अनुमतियां बर्बाद कर देता है। मैंने Xcode समाधान का उपयोग किया।
सूदो

102

आप इसे कमांडलाइन पर चलाकर अपनी समस्या हल कर सकते हैं:

 STATIC_DEPS=true pip install lxml

इसने मेरी मदद की। डॉक्स पर स्पष्टीकरण


बहुत बहुत धन्यवाद। इसने मुझे अविश्वसनीय रूप से समय की बचत की।
लुकैम्पबेल

OSX 10.9.5 पर ठीक काम करता है
user9869932

धन्यवाद! MacOS 10.14 पर ठीक काम करता है
jolvera

48

मैंने ऊपर के अधिकांश समाधानों की कोशिश की, लेकिन उनमें से किसी ने भी मेरे लिए काम नहीं किया। मैं Yosemite 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 की जरूरत है।
मौरो बरालडी

OSError: [Errno 1] Operation not permitted: '/usr/bin/build'सूडो के रूप में कमांड चलाने के बावजूद मेरा अभी भी आउटपुट है । कोई विचार?
PLPeeters

@PLeeters अजगर का कौन सा संस्करण आप चला रहे हैं और कौन सा OS संस्करण?
रॉबिन्सज

मैं एल कैपिटन बीटा पर हूं (इसलिए वह 10.11 है) और इसके लिए पायथन 2.7 का उपयोग कर रहा हूं। मुझे लगता है कि यह एल Capitan के साथ कुछ करने के लिए हो सकता है ...
PLPeeters

आप एक जीवन रक्षक है। एल कैपिटान काम करता है, virtualenv में कोई sudo की जरूरत है। धन्यवाद!
जेकूर

24

यह कुछ समय से मुझे परेशान कर रहा है। मुझे पता नहीं है कि अजगर व्याकुलता इत्यादि के बारे में पर्याप्त जानकारी देता है, लेकिन यहाँ शामिल पथ गलत है। जब तक अजगर 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 कमांड लाइन टूल इंस्टॉल था, लेकिन लगता है कि इसे अपडेट करने की आवश्यकता है।
स्टीवन मर्कटांटे

12

संस्थापन निर्देश http://lxml.de/installation.html पर स्पष्ट करें:

परीक्षण वातावरण में निर्माण को गति देने के लिए, जैसे एक निरंतर एकीकरण सर्वर पर, सी कंपाइलर अनुकूलन को CFLAGS परिवेश चर सेट करके अक्षम करें:

CFLAGS="-O0" pip install lxml

मेरे लिए निर्दोष काम किया। +1
जोहो परेरा

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

[१] क्लैंग एरर: अज्ञात तर्क: '-मोन्न-फ्यूज़्ड-मैड' (अजगर पैकेज स्थापना विफलता)


धन्यवाद। इससे मुझे मदद मिली। काश जवाब कभी-कभी ओएस संस्करणों के बारे में मेटा हो सकते हैं।
फ्रैंकवी

विश्व स्तर पर स्थापित करने, तो आप की जरूरत हो सकती /etc/sudoersके साथ sudo visudoवातावरण चर को बचाने के लिये।
स्वंदोग

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

यह दिलचस्प है कि कुछ लोगों sudoको पाइप स्थापित करने की आवश्यकता थी जबकि अन्य नहीं थे। (मुझे सीधे पाइप स्थापित करते समय अनुमति की समस्या थी, और sudo करने के लिए था।) मैं केवल यह मान सकता हूं कि मैंने दूर अतीत में रूट के रूप में कुछ अजगर-संबंधित स्थापित किया था, जिसने कुछ (सिस्टम) फ़ोल्डर्स को स्वयं के बजाय रूट के रूप में बनाया था।
नोआच मर्दमैन

यह मेरे लिए काम करता है, मैंने काम के लिए एक नया मैक स्थापित किया था और भले ही मैंने एक्सकोड स्थापित किया था, मुझे लगता है कि यह कमांड लाइन टूल स्थापित नहीं किया था? वैसे भी, यह चल रहा है, यह उपकरण स्थापित करने और फिर सिर्फ 'pip3.4 स्थापित lxml --user' काम किया, कोई sudo या किसी भी खोल चर निर्यात।
22 अक्टूबर को मिगांडी

यह पूरी तरह से योसेमाइट पर एक वर्चुअन में काम करता है। मुझे sudoहालांकि जरूरत नहीं थी ।
nils

@NoachMagedman मैं एक आभासी वातावरण में स्थापित कर रहा हूं, इसलिए मैं sudo का उपयोग नहीं कर सकता। अगर मैं sudo का उपयोग करता हूं, तो वह इसे मेरे वैश्विक अजगर पैकेज में स्थापित करेगा, जो कि मैं बचने की कोशिश कर रहा हूं।
एस्टेबन

6

मैंने Yosemiteनिम्न आदेशों को चलाकर इस समस्या को हल किया :

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

मैं अपने पुराने सिस्टम पर चीजों की उलझी हुई गड़बड़ को होमब्रेव करने के लिए पर्याप्त था, इसलिए मैंने अपने नए Yosemite 10.10.2 सेटअप के साथ इसका उपयोग नहीं करने की कसम खाई। मैंने पहले से ही पूरे Xcode पैकेज को स्थापित किया है, इसलिए xcode-select installमेरे लिए कोई आवश्यकता नहीं है । मैंने नवीनतम libxml2 और libxlst संकुल (lxml के लिए आवश्यक) डाउनलोड किया है, लेकिन उन्हें स्थापित करने से पहले मैंने सोचा कि अगर योसमाइट के पास कुछ फाइलें हैं, तो मैं जाँच करूँगा। मैंने एक वर्चुअल एनवी (virtualenvwrapper का उपयोग करके) बनाया, और फिर मैंने किया pip install lxml, और lxml ने त्रुटि मुक्त स्थापित किया। मैंने google के होम पेज को स्क्रैप करके lxml का परीक्षण किया, और यह ठीक काम किया।
7stud

4

Homebrew के साथ, libxml2 सिस्टम libxml2 के साथ हस्तक्षेप नहीं करने के लिए छिपा हुआ है, इसलिए इसे खोजने के लिए पाइप को थोड़ी मदद करनी चाहिए।

बैश के साथ:

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- त्रुटि = अप्रयुक्त-कमांड-लाइन-तर्क-हार्ड-त्रुटि-में-भविष्य पाइप lbml


1
यह केवल अप्रयुक्त तर्कों के लिए कठिन त्रुटियों को निष्क्रिय करता है, जो मैंने ओएस एक्स मावरिक्स पर कई अन्य पुस्तकालय संकलनों के दौरान सामना किया है। मैंने अपने बैश प्रोफाइल में लाइन जोड़ने के लिए इसे उपयोगी पाया है, इसलिए मुझे इसे हर बार देखने की ज़रूरत नहीं है कि मैं इसका सामना करता हूँ: 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"
मिचेल कौव-ए-त्ज़ो

2

दुर्भाग्य से xcode-select --installमेरे लिए काम नहीं किया क्योंकि मेरे पास पहले से ही नवीनतम संस्करण था।

यह बहुत अजीब है, लेकिन मैंने XCode खोलकर और नियम और शर्तों को स्वीकार करके इस मुद्दे को हल किया। पुनः चलने के pip install lxmlबाद कोई त्रुटि नहीं हुई।


1

पाइप से सफल स्थापित होने के बाद (lxml 3.6.4) मुझे lxml.etree मॉड्यूल आयात करते समय एक त्रुटि मिल रही थी।

मैं अंतहीन रूप से इसे स्क्रेपी के लिए अपेक्षित के रूप में स्थापित करने के लिए खोज कर रहा था, और सभी विकल्पों की कोशिश की, लेकिन आखिरकार मेरे लिए यह काम किया (मैक ओएसएक्स 10.11 पायथन 2.7):

$ STATIC_DEPS=true sudo easy_install-2.7 "lxml==2.3.5"

Lxml का पुराना संस्करण etree मॉड्यूल के साथ काम करता है।

पिप अक्सर पैकेज के निर्दिष्ट संस्करण को अनदेखा कर सकते हैं, उदाहरण के लिए जब आपके पास पाइप कैश में नया संस्करण होता है, इस प्रकार 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

मैं एक ही सवाल से मिला और काम करने के दिनों के बाद मैंने अपने ओएस एक्स 10.9.4 पर पायथन 3.4.1 के साथ इस समस्या को हल किया।

यहाँ मेरा समाधान है,

Lxml.de से lxml स्थापित करने के अनुसार ,

एलएक्सएमएल का एक मैकपोर्ट उपलब्ध है। कुछ इस तरह की कोशिश करें जैसे पोर्ट इंस्टॉलेशन 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मेरे लिए काम नहीं किया। मैं https://pypi.python.org/pypi/lxml/2.3 पर गया और macosx.gg डाउनलोड किया।

https://pypi.python.org/packages/2.7/l/lxml/lxml-2.3-py2.7-macosx-10.6-intel.egg#md5=52322e4698d68800c6b6aedb0dbe5f34

फिर फ़ाइल easy_installको स्थापित करने के लिए कमांड लाइन का उपयोग किया .egg



0

बहुत बाल फाड़ने और दांतों को कुतरने के बाद, मैंने पाइप के साथ एक्सकोड की स्थापना रद्द की और भाग गया:

easy_install lxml

और सब ठीक था।


-1

प्रयत्न:

% STATIC_DEPS=true pip install lxml

या:

% STATIC_DEPS=true sudo pip install lxml

यह काम करता हैं!


आंद्रे के जवाब की नकल।
कर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.