OSX 10.11'e (El Capitan) (Sistem Bütünlüğü Koruması) Scrapy kurulumu sırasında “OSError: [Errno 1] İşleme izin verilmiyor”


206

Pip ile OSX 10.11 (El Capitan) Scrapy Python çerçevesini yüklemeye çalışıyorum. Yükleme komut dosyası gerekli modülleri indirir ve bir noktada aşağıdaki hatayı döndürür:

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'

Ben komut ile OSX 10.11 rootless özelliğini devre dışı bırakmaya çalıştım:

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

ancak makine yeniden başlatıldığında da aynı hatayı alıyorum.

Benim StackExchangers herhangi bir ipucu veya fikir?

Yardımcı olursa, tam komut dosyası çıktısı aşağıdaki gibidir:

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'


Sorular burada tartışılıyor: apple.stackexchange.com/questions/209572/…
hectorpal

Belki
SIP'yi

5
Pip kullanarak "virtualenvwrapper" yüklemeye çalıştığımda tam olarak aynı sorun vardı ama bu komut benim için çalıştı: "sudo pip install --ignore-yüklü virtualenvwrapper" Bu yüzden bir acı ile gitmek zorunda kalmadan da sizin durumunuz için geçerli olabilir yaklaşık
Arabasta

Yanıtlar:


153

Ayrıca OS X'i hacklemeye başlamanın kesinlikle gerekli olmadığını düşünüyorum.

Bunu yaparak çözebildim

brew install python

Yeni El Capitan ile gelen python / pip kullanmanın bazı sorunları var gibi görünüyor.


2
Benim için de çalıştı ve bir sonraki Python 2.7.X'i aldı. Bu cevap kazanmalıdır
Russell_A

3
Bu El Capitan Mac kullanıcıları için en iyi cevaptır
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

Doğru işaret ettiniz! Bu cevap kabul edilmelidir!
Muaaz salagar

benim için yaptı. (Sierra 10.13.6)
Michael Guild

@codersofthedark belki brew install python3yeni sistemlerde olduğu gibi bunu çözebilir python3 artık varsayılan python.
Mario

399
pip install --ignore-installed six

Hile yapardı.

Kaynak: github.com/pypa/pip/issues/3165


51
Python kurulumunu bozmadan El Capitan'a awscli kurarken bu benim için iyi çalıştı:sudo pip install --ignore-installed awscli
Luke

3
Bu yöntemle yüklendiğinde ImportError: cannot import name xmlrpc_client
terapi alamadı

3
--ignore-installedbayrağı benim için AWS Elastik Beanstalk Klibi için hile yaptı. Sonunda ...
Kral John

1
bu benim için de işe yaradı. Bence bu doğru cevap olmalı.
Paul Carlton

1
Bu benim için çalıştı sudo pip install --ignore-installed scrapy.
Sophia Feng

89

Diğer yanıtların söylediği gibi, bunun nedeni yeni Sistem Bütünlüğü Korumasıdır, ancak diğer yanıtların aşırı karmaşık olduğuna inanıyorum.

Bu paketi yalnızca geçerli kullanıcıda kullanacaksanız, --userbayrağını kullanarak SIP'yi devre dışı bırakmaya gerek kalmadan paketi iyi bir şekilde yükleyebilmeniz gerekir . Bunun gibi:

sudo pip install --user packagename

2
Bu farklı bayrakların nasıl çalıştığı konusunda net değilim, ama bu cevap benim için en anlamlı. (Ayrıca, işe yaradı :)
xdhmoore

@xdhmoore Teşekkürler, ben de öyle düşünüyorum haha. SIP'i devre dışı bırakmaya veya bağımlılıklarla yeni bir python veya karışıklık yüklemeye gerek yok.
dietbacon

Mkvirtualenv için, bu paket beklenen konuma / usr / local / bin dosyasına yüklenmedi. Bunun yerine, sudo pip install mkvirtualenv --ignore-installed sixbeklendiği gibi çalışır / virtualenvwrapper.sh dosyasını / usr / local / bin dizinine yerleştirir
Rob

@Rob Gerçekten öyle değil. --User bayrağı yalnızca geçerli kullanıcı için yüklenir, dolayısıyla kullanıcıya özgü olmayan bir klasöre yüklenmeyecektir. Benim için bu komut, paketlerimi .py dosyaları için "/Users/myusername/Library/Python/2.7/lib/python/site-packag‌ es" ve "/Users/myusername/Library/Python/2.7/bin" dizinlerine kurar dosyaları için dosyalar
dietbacon

1
Bu benim için bir rasa-nlu için çalıştı. sudo pip install --user rasa_nlu
nantitv

40

Yüksek oylanan cevaplar benim için işe yaramadı, El Capitan kullanıcıları için çalışıyor gibi görünüyor. Ancak MacOS Sierra kullanıcıları için aşağıdaki adımları deneyin

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

sudo pip install --user <package name>
Python'u

23

Uyarılar

Mac'te Python sistemini değiştirmeye karşı çok güçlü bir şekilde öneriyorum ; oluşabilecek çok sayıda sorun vardır.

Özel hatanız, yükleyicinin mevcut Python yüklemesini etkilemeden Scrapy bağımlılıklarını çözmede sorun yaşadığını gösterir. Sistem, bir dizi temel görev için Python kullanır, bu nedenle sistem kurulumunu sabit tutmak ve Apple tarafından orijinal olarak yüklenmiş olarak tutmak önemlidir .

Ayrıca, yerleşik güvenliği atlatmadan önce diğer tüm olasılıkları tüketirim.

Paket Yöneticisi Çözümleri:

Lütfen önce virtualenv gibi bir Python sanallaştırma aracına bakın ; bu, güvenli bir şekilde deneme yapmanızı sağlar.

Mac OS'nizle çakışmadan dilleri ve yazılımları kullanmak için başka bir yararlı araç da Homebrew'dur . Gibi MacPorts veya Fink , Homebrew Mac için bir paket yöneticisidir ve güvenli bir şekilde diğer diller ve araçlar çok çalıştıkları için yararlıdır.

"Roll your own" Yazılım Yüklemeleri:

Eğer paket yöneticisi yaklaşım gibi değil yaparsanız, kullanabilirsiniz /usr/localyol veya bir oluşturmak /opt/localalternatif Python kurulumu yüklemek için dizin ve Gözlerinde farklı Yollarınızı düzeltmek .bashrc. Bu çözümler için root özelliğini etkinleştirmeniz gerektiğini unutmayın.

Yine de nasıl yapılır:

Güvenlik denetimini kesinlikle devre dışı bırakmanız gerekiyorsa (ve içtenlikle bunun sistem dilleri ve kaynaklarıyla uğraşmaktan başka bir şey olduğunu umuyorum), geçici olarak devre dışı bırakabilir ve bu yazıdaki Sistemi Devre Dışı Bırakma ile ilgili bazı teknikleri kullanarak yeniden etkinleştirebilirsiniz. Bütünlük Koruması .


2
Zamana biraz yatırım yapmak ve bazı komut satırı yeterliliği gerektirir, ancak sonuç buna değer - Ruby (RVM), Perl, vb.Için benzer sanal ortamlar kullanıyorum. Homebrew, diğer birçok dili ve aracı güvenli bir şekilde denemek için yararlıdır de.
rholmes

16

Bu benim için hile yaptı:

   sudo pip install scrapy --ignore-installed six

Evet, bu sudo pip install virtualenvwrapper --ignore-installed sixhatadan kaçınarak da işe yarıyor :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'
Rob

12

El Capitan'da yeni bir özellik olan "Sistem Bütünlüğü Koruması" nı devre dışı bırakmalısınız.

İlk olarak, terminalinizde rootless yapılandırma komutunu çalıştırmalısınız

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

Ardından, kurtarma bölümünün terminalinde (Recovery OS) aşağıdaki komutu çalıştırmalısınız

# csrutil disable
# reboot

Sorunumu böyle çözdüm. İlk bölümün gerekli olduğundan emin değilim. İstediğiniz gibi deneyin.

--UYARI

Her şey çalıştıktan sonra SIP'yi tekrar etkinleştirmelisiniz;

Kurtarma Moduna tekrar başlayın ve terminalde çalıştırın

# csrutil enable

csrutil: Sistem Bütünlüğü Korumasını Yapılandırma


10
hayır hayır hayır. Bu, kullanıcı alanında çalışan bir yardımcı programdır. Lütfen bunun için nispeten basit bir yol için stackoverflow.com/a/33024464/743638 adresine bakın . 1. imzasız çekirdek uzantılarından korumayı devre dışı bırakma 2. sistem ikili dosyalarını değiştirin 3. sistem yollarını vb. Denetlemek ve monte etmek sadece aptalca. En azından SIP'yi kurulumdan sonraya kadar SICAKLIĞIN çıkarılmasını ve ardından tekrar açılmasını öneririz.
Kutsal

6
Bunu yapmam. Bu sorun istiyor. Daha zarif bir çözüm yaklaşımı için aşağıdaki cevabımı inceleyin.
Mario

1
soru bir aydan fazla cevapsızdı. Bence, o zamanlar bu tek "bitirilebilir" çözümdü. Her şey yüklendikten sonra SIP'yi etkinleştirmek için bazı uyarılarla cevabımı düzenleyeceğim.
Ergun Ozyurt

12

AWS'yi El Capitan'daki pip aracılığıyla yüklemeye çalıştım, ancak bu hata görünüyor

OSError: [Errno 1] İşleme izin verilmiyor: '/var/folders/wm/jhnj0g_s16gb36y8kwvrgm7h0000gp/T/pip-wTnb_D-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/pyhon 1.4.1-py2.7.egg-info'

Cevabı burada buldum

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

Benim için çalışıyor :)


10

MacOS Sierra cihazımda da aynı hatayı alıyordum. Bu adımları izledim ve başarılı paketi başarıyla yükledim.

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

MacBook-Air:~ shree$ scrapy version
Scrapy 1.4.0

5

Bu benim için hile yaptı.

sudo pip install - ileri yüklü terapi


5

Bazı cevapların bir kombinasyonunu denedim ve bu sonunda çalıştı:

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

Şerefe


2

python'u tekrar yükleyin:

demlemek python yükleyin

tekrar dene:

sudo pip yüklemek terapi

benim için çalışıyor, umarım yardımcı olabilir


1

Mac'i yeniden başlatın -> başlatma zil sesinden sonra "Command + R" tuşunu basılı tutun -> OS X Yardımcı Programlarını açar -> Terminal'i açın ve "csrutil devre dışı" yazın -> OS X'i yeniden başlatın -> Terminal'i açın ve "csrutil status"


1

Bu komut mükemmel çalışır: D

sudo -H pip install --upgrade package_name --ignore yüklü altı


1

Bazen bu tür davranışlar, pip3 yerine pip kullanarak python2 klasörüne python3 lib yüklemeye çalışırsanız elde edilebilir.


0
  1. - SIP'yi (sistem Bütünlük Koruması) kapatın - sonra yeniden başlatın, hata ayıklama moduna girmek için + R komutunu kullanın, ardından terminali seçin: csrutil yeniden başlatmayı devre dışı bırak

2.

sudo C_INCLUDE_PATH = / Uygulamalar / Xcode.app / İçindekiler / Geliştirici / Platformlar / MacOSX.platform / Geliştirici / SDKs / MacOSX10.11.sdk / usr / include / libxml2: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX .platform / Geliştirici / SDKs / MacOSX10.11.sdk / usr / include / libxml2 / libxml: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/ pip install scrapy dahil - daha fazla yüklenmiş altı

3. - daha sonra eski altıyı kaldırın, tekrar yükleyin sudo rm -rf /Library/Python/2.7/site-packages/six* sudo rm -rf /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/ lib / python / six * sudo pip yükleme altı

4. - sonra yeniden ayarlamak csrutil yeniden başlatmayı etkinleştir

- crappy şimdi çalışıyor


-1

benim için çalışıyor:

pip install scrapy --user -U

-1

Ben çizgi boyunca başka bir yerde bir bağımlılık eksikti, bu yüzden böyle proje için diğer gereksinimleri yükledi:

pip install --user -r requirements.txt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.