"OSError: [Errno 1] OSX 10.11 (El Capitan) (सिस्टम इंटीग्रिटी प्रोटेक्शन) में Scrapy स्थापित करते समय ऑपरेशन की अनुमति नहीं है"


206

मैं पाइप के माध्यम से OSX 10.11 (एल कैपिटन) में स्क्रेपी पायथन फ्रेमवर्क स्थापित करने की कोशिश कर रहा हूं। स्थापना स्क्रिप्ट आवश्यक मॉड्यूल डाउनलोड करता है और कुछ बिंदु पर निम्न त्रुटि देता है:

OSError: [Errno 1] Operation not permitted: '/tmp/pip-nIfswi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'

मैंने OSX 10.11 में रूटलेस फीचर को कमांड से निष्क्रिय करने की कोशिश की है:

sudo nvram boot-args="rootless=0";sudo reboot

लेकिन मुझे अभी भी वही त्रुटि मिलती है जब मशीन रिबूट होती है।

मेरे साथी StackExchangers से कोई सुराग या विचार?

यदि यह मदद करता है, तो पूर्ण स्क्रिप्ट आउटपुट निम्न है:

sudo -s pip install scrapy
Collecting scrapy
  Downloading Scrapy-1.0.2-py2-none-any.whl (290kB)
    100% |████████████████████████████████| 290kB 345kB/s 
Requirement already satisfied (use --upgrade to upgrade): cssselect>=0.9 in /Library/Python/2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): queuelib in /Library/Python/2.7/site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from scrapy)
Collecting w3lib>=1.8.0 (from scrapy)
  Downloading w3lib-1.12.0-py2.py3-none-any.whl
Collecting lxml (from scrapy)
  Downloading lxml-3.4.4.tar.gz (3.5MB)
    100% |████████████████████████████████| 3.5MB 112kB/s 
Collecting Twisted>=10.0.0 (from scrapy)
  Downloading Twisted-15.3.0.tar.bz2 (4.4MB)
    100% |████████████████████████████████| 4.4MB 94kB/s 
Collecting six>=1.5.2 (from scrapy)
  Downloading six-1.9.0-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from Twisted>=10.0.0->scrapy)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from zope.interface>=3.6.0->Twisted>=10.0.0->scrapy)
Installing collected packages: six, w3lib, lxml, Twisted, scrapy
  Found existing installation: six 1.4.1
    DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
    Uninstalling six-1.4.1:
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/basecommand.py", line 223, in main
status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/commands/install.py", line 299, in run
root=options.root_path,
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_set.py", line 640, in install
requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_install.py", line 726, in uninstall
paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_uninstall.py", line 125, in remove
renames(path, new_path)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/utils/__init__.py", line 314, in renames
shutil.move(old, new)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move
copy2(src, real_dst)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2
copystat(src, dst)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat
os.chflags(dst, st.st_flags)
OSError: [Errno 1] Operation not permitted: '/tmp/pip-nIfswi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'


यहाँ प्रश्नों की चर्चा की जा रही है: apple.stackexchange.com/questions/209572/…
hectorpal

हो सकता है कि आप इसे बिना SIP के निष्क्रिय करने में मदद करें: stackoverflow.com/a/32930419/3090526
nvg58

5
मुझे वही समस्या थी जब मैंने पाइप का उपयोग करके "virtualenvwrapper" स्थापित करने की कोशिश की, लेकिन इस कमांड ने मेरे लिए काम किया: "sudo pip install --ignore- इंस्टॉल virtualenvwrapper" तो यह आपके केस पर लागू हो सकता है और साथ ही साथ एक दर्दनाक से गुजरने के बिना भी। राउंड-अबाउट
अरबस्टा

जवाबों:


153

मुझे यह भी लगता है कि ओएस एक्स को हैक करना शुरू करना बिल्कुल जरूरी नहीं है।

मैं इसे हल करने में सक्षम था a

brew install python

ऐसा लगता है कि नए एल कैपिटन के साथ आने वाले अजगर / पाइप का उपयोग करने में कुछ समस्याएं हैं।


2
मेरे लिए भी काम किया, और मुझे अगला पायथन 2.7.X मिला। यह जवाब जीतना चाहिए
रसेल_ए

3
El Capitan Mac उपयोगकर्ताओं के लिए यह सबसे अच्छा उत्तर है
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

आपने इसे सही ढंग से इंगित किया है! यह स्वीकार किया जाना चाहिए जवाब!
मुअज़ सलागर

वो मेरे लिए किया गया। (सिएरा 10.13.6)
माइकल गिल्ड

@codersofthedark शायद brew install python3इसे हल कर सकता है क्योंकि नए सिस्टम python3 पर अब डिफ़ॉल्ट अजगर है।
मारियो

399
pip install --ignore-installed six

चाल चलेगी।

स्रोत: github.com/pypa/pip/issues/3165


51
यह मेरे लिए अच्छी तरह से काम करता है जब अजगर स्थापना के साथ खिलवाड़ किए बिना एल कैपिटन पर एंस्कली स्थापित करना:sudo pip install --ignore-installed awscli
ल्यूक

3
इस विधि के साथ स्थापित करने पर स्क्रैप आयात नहीं किया जा सकता हैImportError: cannot import name xmlrpc_client
harinsa

3
--ignore-installedझंडा मेरे लिए AWS इलास्टिक बीनस्टॉक क्ली के लिए भी किया। अंत में ...
जॉन द किंग

1
इसने मेरे लिए भी अच्छा काम किया। मुझे लगता है कि यह सही उत्तर होना चाहिए।
पॉल कार्लटन

1
इसमें मेरे लिए काम किया sudo pip install --ignore-installed scrapy
सोफिया फेंग

89

जैसा कि अन्य जवाबों में कहा गया है, यह नए सिस्टम इंटीग्रिटी प्रोटेक्शन के कारण है, लेकिन मेरा मानना ​​है कि अन्य उत्तर अधूरे हैं।

यदि आप वर्तमान उपयोगकर्ता में केवल उस पैकेज का उपयोग करने वाले हैं, तो आपको --userध्वज का उपयोग करके, SIP को अक्षम करने की आवश्यकता के बिना, इसे ठीक से स्थापित करने में सक्षम होना चाहिए । ऐशे ही:

sudo pip install --user packagename

2
मैं स्पष्ट रूप से स्पष्ट नहीं हूं कि ये अलग-अलग झंडे कैसे काम करते हैं, लेकिन यह उत्तर मुझे सबसे अधिक समझ में आता है। (इसके अलावा, यह काम किया :)
xdhmoore

@xdhmoore धन्यवाद, मुझे लगता है कि बहुत हाहा। एसआईपी को निष्क्रिय करने या निर्भरता के साथ एक नया अजगर या गड़बड़ स्थापित करने की आवश्यकता नहीं है।
डाइटबाकॉन

Mkvirtualenv के लिए, इसने अपेक्षित स्थान / usr / स्थानीय / बिन में पैकेज स्थापित नहीं किया। इसके बजाय, sudo pip install mkvirtualenv --ignore-installed sixअपेक्षा के अनुसार काम करता है, virtualenvwrapper.sh को / usr / लोकल / बिन में डालकर
Rob

@ रोब यह वास्तव में नहीं है। --User ध्वज केवल वर्तमान उपयोगकर्ता के लिए स्थापित होता है, इसलिए यह समझ में आता है कि यह उस फ़ोल्डर में स्थापित नहीं होगा जो उपयोगकर्ता-विशिष्ट नहीं है। मेरे लिए, यह कमांड .py फ़ाइलों के लिए "/User/myusername/Library/Python/2.7/lib/python/site-packagh es" और "/User .myusername/Library/Python/2.7/bin" में मेरे पैकेज स्थापित करता है। .sh फ़ाइलों के लिए
डाइटबाकॉन

1
इसने मेरे लिए रासा-नालू का काम किया। sudo pip install --user rasa_nlu
nantitv

40

उच्च मत वाले उत्तर मेरे लिए काम नहीं करते थे, यह एल कैपिटन उपयोगकर्ताओं के लिए काम करता है। लेकिन MacOS सिएरा उपयोगकर्ताओं के लिए निम्न चरणों का प्रयास करें

  1. brew install python
  2. sudo pip install --user <package name>

sudo pip install --user <package name>मेरे लिए काम किया, अजगर को पुन: स्थापित करने की आवश्यकता के बिना
डेटागेक

23

चेतावनी

मैं मैक पर सिस्टम पायथन को संशोधित करने के खिलाफ बहुत दृढ़ता से सुझाव दूंगा; ऐसे कई मुद्दे हैं जो हो सकते हैं।

आपकी विशेष त्रुटि से पता चलता है कि इंस्टॉलर में वर्तमान पायथन इंस्टॉलेशन को प्रभावित किए बिना स्क्रैप के लिए निर्भरता को हल करने के मुद्दे हैं। सिस्टम कई आवश्यक कार्यों के लिए पायथन का उपयोग करता है, इसलिए सिस्टम स्थापना को स्थिर रखना महत्वपूर्ण है और मूल रूप से Apple द्वारा स्थापित किया गया है।

मैं सुरक्षा में निर्मित दरकिनार करने से पहले अन्य सभी संभावनाओं को भी समाप्त कर दूंगा।

पैकेज प्रबंधक समाधान:

कृपया पहले virtualenv जैसे पायथन वर्चुअलाइजेशन टूल में देखें ; यह आपको सुरक्षित रूप से प्रयोग करने की अनुमति देगा।

अपने मैक ओएस के साथ संघर्ष किए बिना भाषाओं और सॉफ्टवेयर का उपयोग करने के लिए एक और उपयोगी उपकरण होमब्रे है । जैसा MacPorts या फिंक , Homebrew मैक के लिए एक पैकेज प्रबंधक है , और सुरक्षित रूप से अन्य भाषाओं और उपकरणों के बहुत सारे की कोशिश कर के लिए उपयोगी है।

"अपना खुद का रोल करें" सॉफ्टवेयर इंस्टॉल:

यदि आपको पैकेज मैनेजर दृष्टिकोण पसंद नहीं है, तो आप /usr/localपथ का उपयोग कर सकते हैं या /opt/localएक वैकल्पिक पायथन इंस्टॉलेशन स्थापित करने के लिए एक निर्देशिका बना सकते हैं और अपने पथ को अपने में ठीक कर सकते हैं .bashrc। ध्यान दें कि आपको इन समाधानों के लिए रूट सक्षम करना होगा।

वैसे भी यह कैसे करें:

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


2
यह समय में थोड़ा सा निवेश है और इसके लिए कुछ कमांड लाइन प्रवीणता की आवश्यकता होती है, लेकिन परिणाम इसके लायक है - मैं रूबी (आरवीएम), पर्ल, आदि के लिए इसी तरह के आभासी वातावरण का उपयोग करता हूं होमबॉव सुरक्षित रूप से अन्य भाषाओं और उपकरणों के बहुत सारे प्रयास करने के लिए उपयोगी है। भी।
rholmes

16

इसने मेरे लिए चाल चली:

   sudo pip install scrapy --ignore-installed six

हाँ, यह sudo pip install virtualenvwrapper --ignore-installed sixइस त्रुटि से बचने के लिए भी काम करता है :OSError: [Errno 1] Operation not permitted: '/tmp/..../System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'
रोब

12

आपको "सिस्टम इंटिग्रिटी प्रोटेक्शन" को अक्षम करना चाहिए जो एल कैपिटन में एक नई सुविधा है।

सबसे पहले, आपको अपने टर्मिनल पर रूटलेस कॉन्फ़िगरेशन के लिए कमांड चलाना चाहिए

# nvram boot-args="rootless=0"
# reboot

फिर, आपको रिकवरी पार्टीशन टर्मिनल (रिकवरी ओएस) पर नीचे कमांड चलाना चाहिए

# csrutil disable
# reboot

मैंने बस अपनी समस्या का समाधान किया है। मुझे यकीन नहीं है कि पहला भाग आवश्यक है। जैसा चाहो वैसा करो।

--WARNING

सब कुछ काम करने के बाद आपको फिर से एसआईपी सक्षम करना चाहिए;

बस रिकवरी मोड में फिर से रिबूट करें और टर्मिनल में चलाएं

# csrutil enable

csrutil: सिस्टम इंटीग्रिटी प्रोटेक्शन को कॉन्फ़िगर करना


10
नहीं नहीं नहीं। यह यूजर स्पेस में चलने वाला एक यूज है। इसके आस-पास अपेक्षाकृत सरल तरीके के लिए कृपया stackoverflow.com/a/33024464/743638 देखें । 1. अहस्ताक्षरित कर्नेल एक्सटेंशन से सुरक्षा को अक्षम करना 2. सिस्टम बायनेरिज़ को संशोधित करें 3. सिस्टम पथों का निरीक्षण करना और माउंट करना आदि बस मूर्खतापूर्ण है। कम से कम TIPPORARILY को सिप को हटाने के बाद, और फिर इसे वापस चालू करने की सलाह दें।
पवित्र

6
मैं ऐसा नहीं करूंगा। यह परेशानी पूछ रहा है। अधिक सुंदर समाधान दृष्टिकोण के लिए नीचे मेरा उत्तर देखें।
मारियो

1
यह प्रश्न एक महीने से अधिक समय से अनुत्तरित था। मुझे लगता है, यह उस समय एकमात्र "खोजने योग्य" समाधान था। मैं हर उत्तर को स्थापित करने के बाद SIP को सक्षम करने के लिए कुछ चेतावनी के साथ अपने उत्तर को संपादित करूंगा।
एरगुन ओजर्ट

12

मैंने El Capitan में पाइप के माध्यम से AWS को स्थापित करने की कोशिश की लेकिन यह त्रुटि दिखाई देती है

OSError: [Errno 1] ऑपरेशन की अनुमति नहीं है: '/var/folders/wm/jhnj0g_s16gb36y8kwvrgm7h0000gp/T/pip-wnb_D-uninstall/System/Fibrary/frameworks/fyyon.framework.vram/rram.framwork.vrg07 1.4.1-py2.7.egg-जानकारी '

मैं इस सवाल का जवाब मिल गया यहाँ

sudo -H pip install awscli --upgrade --ignore-installed six

इससे मेरा काम बनता है :)


10

मुझे अपने MacOS सिएरा पर वही त्रुटि मिल रही थी। मैंने इन चरणों का पालन किया और सफलतापूर्वक खस्ता पैकेज स्थापित करने में सक्षम हुआ।

1. sudo pip install --ignore-installed six
2. sudo pip install --ignore-installed scrapy

MacBook-Air:~ shree$ scrapy version
Scrapy 1.4.0


5

कुछ उत्तरों के संयोजन की कोशिश की और अंततः यह काम किया:

sudo -H pip install --upgrade --ignore-installed awsebcli

चियर्स


2

फिर से अजगर स्थापित करें:

काढ़ा स्थापित अजगर

दुबारा प्रयास करें:

सुडो पाइप स्थापित स्क्रैप

मेरे लिए काम करता है, आशा है कि यह मदद कर सकता है


1

स्टार्टअप चाइम के बाद मैक -> "कमांड + आर" को दबाए रखें -> OS X यूटिलिटीज खोलता है -> टर्मिनल खोलें और "csrutil अक्षम करें" -> रिबूट OS X -> ओपन टर्मिनल टाइप करें और "csrutil स्थिति जांचें"



1

कभी-कभी ऐसा व्यवहार प्राप्त किया जा सकता है यदि आप पाइप 3 के बजाय पाइप का उपयोग करके अजगर 2 फ़ोल्डर में python3 lib स्थापित करने का प्रयास करते हैं।


0
  1. - SIP (सिस्टम इंटीग्रिटी प्रोटेक्शन प्रोटेक्शन) - फिर रिबूट, डिबग मोड में प्रवेश करने के लिए कमांड + R का उपयोग करें, फिर टर्मिनल का चयन करें: csrutil रिबूट को अक्षम करें

2।

sudo C_INCLUDE_PATH = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.11.sdk / usr / शामिल / libxml2: /Applications/Xcode.app/Contents/Peveloper/Mlatform/ .platform / Developer / SDKs / MacOSX10.11.sdk / usr / / / libxml2 / libxml शामिल करें: /Applications/Xcode.app/Contents/Developer/Platform/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/ पिप इंस्टॉल स्क्रेपी -इग्नोर-इनस्टॉल सिक्स शामिल करें

3. - फिर पुराने छह को हटा दें, इसे फिर से इंस्टॉल करें sudo rm -rf /Library/Python/2.7/site-packages/six* sudo rm -rf /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/। lib / python / छह * sudo pip छह स्थापित करते हैं

4. - फिर इसे सेट करें csrutil रिबूट सक्षम करें

- भद्दा काम अब


-1

यह मेरे लिए काम करता है:

pip install scrapy --user -U

-1

मुझे लाइन के साथ कहीं और एक निर्भरता याद आ रही थी, इसलिए मैंने इस तरह की परियोजना के लिए अन्य आवश्यकताओं को स्थापित किया:

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