OSX 10.11(El Capitan)にScrapyをインストールすると、「OSError:[Errno 1] Operation not allowed」(システム整合性保護)


206

Scrapy Pythonフレームワークをpip経由でOSX 10.11(El Capitan)にインストールしようとしています。インストールスクリプトは必要なモジュールをダウンロードし、ある時点で次のエラーを返します。

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
私がpipを使用して「virtualenvwrapper」をインストールしようとしたときもまったく同じ問題がありましたが、このコマンドは私にとってはうまくいきました:「sudo pip install --ignore-installed virtualenvwrapper」ラウンド
アバウト

回答:


153

また、OS Xのハッキングを開始する必要はまったくないと思います。

私はそれを解決することができました

brew install python

新しいEl Capitanに付属するpython / pipを使用すると、いくつかの問題があるようです。


2
私も働いて、次のPython 2.7.Xを手に入れました。この答えが勝つはずです
Russell_A 2016年

3
これはEl Capitan Macユーザーにとって最良の答えです
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

あなたはそれを正しく指摘しました!これは受け入れられるべき答えです!
Muaaz salagar 2017

それは私のためにそれをしました。(シエラ10.13.6)
マイケルギルド

@codersofthedark多分brew install python3今デフォルトのpythonでのpython3新しいシステム上としてこれを解決することができます。
マリオ

399
pip install --ignore-installed six

トリックを行います。

出典:github.com/pypa/pip/issues/3165


51
:Pythonのインストールいじりなしエルキャピタンにawscliをインストールするとき、これは私のためによく働いsudo pip install --ignore-installed awscli
ルーク

3
この方法でインストールすると、ImportError: cannot import name xmlrpc_client
スクレイピー

3
--ignore-installedフラグは私のためにもAWS Elastic Beanstalk Cliのためのトリックをしました。最後に...
ジョン

1
これも私にとってはうまくいきました。これが正解だと思います。
Paul Carlton、

1
これは私にとってはうまくいきましたsudo pip install --ignore-installed scrapy
ソフィア・フォン

89

他の回答が言ったように、それは新しいシステム整合性保護が原因ですが、他の回答は複雑すぎると思います。

現在のユーザーでそのパッケージのみを使用する場合は、--userフラグを使用することにより、SIPを無効にする必要なく、問題なくインストールできます。このような:

sudo pip install --user packagename

2
これらのさまざまなフラグがどのように機能するかは正確にはわかりませんが、この答えは私にとって最も理にかなっているようです。(また、それはうまくいった:)
xdhmoore

@xdhmooreありがとう、私もそうだと思います。SIPを無効にしたり、依存関係のある新しいpythonや混乱をインストールしたりする必要はありません。
dietbacon 2017

mkvirtualenvの場合、これはパッケージを予期された場所/ usr / local / binにインストールしませんでした。代わりに、sudo pip install mkvirtualenv --ignore-installed six期待どおりに動作し、virtualenvwrapper.shを/ usr / local / binに配置します
Rob

@ロブそれは実際にはありません。--userフラグは現在のユーザーに対してのみインストールするため、ユーザー固有ではないフォルダーにはインストールされません。私にとって、このコマンドは、.pyファイルの場合は「/Users/myusername/Library/Python/2.7/lib/python/site-packag‌ es」にパッケージをインストールし、「/ Users / myusername / Library / Python / 2.7 / bin」の場合.shファイル用
dietbacon 2017年

1
これはrasa-nluで私に役立ちました。sudo pip install --user rasa_nlu
nantitv

40

投票数の多い回答は私にとってはうまくいきませんでした。ElCapitanユーザーにとってはうまくいくようです。ただし、MacOS Sierraの場合は、次の手順を試してください。

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

sudo pip install --user <package name>pythonを再インストールする必要なしに私のために働いた
Datageek

23

警告

MacでシステムPythonを変更しないことを強くお勧めします。発生する可能性のある多くの問題があります。

特定のエラーは、インストーラーが現在のPythonインストールに影響を与えずにScrapyの依存関係を解決する問題を抱えていることを示しています。システムは多くの重要なタスクにPythonを使用するため、システムのインストールを安定させることが重要ですさせ、Appleが最初にインストールしたとおりです。

組み込みのセキュリティをバイパスする前に、他のすべての可能性使い果たしてしまいます。

パッケージマネージャーソリューション:

最初にvirtualenvなどのPython仮想化ツールを調べてください。これにより、安全に実験することができます。

Mac OSと競合せずに言語とソフトウェアを使用するためのもう1つの便利なツールはHomebrewです。MacPortsFinkと同様に、HomebrewはMac用のパッケージマネージャーであり、他の多くの言語やツールを安全に試すのに役立ちます。

「独自のロール」ソフトウェアのインストール:

パッケージマネージャーのアプローチが気に入らない場合は、/usr/localパスを使用するか/opt/local、代替のPythonインストールをインストールするためのディレクトリを作成し、でパスを修正できます.bashrc。これらのソリューションではrootを有効にする必要があることに注意してください。

とにかくそれを行う方法:

セキュリティチェックを絶対に無効にする必要がある場合(システムの言語やリソースをいじる以外の目的であると心から願っています)、一時的に無効にして、システム無効にする方法に関するこの投稿のいくつかの手法を使用して再度有効にすることができます。整合性保護


2
時間への投資は少しで、コマンドラインの熟練が必要ですが、結果はそれだけの価値があります。Ruby(RVM)やPerlなどに同様の仮想環境を使用します。Homebrewは、他の多くの言語やツールを安全に試すのに役立ちます同じように。
rholmes 2015

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

El Capitanの新機能である「システム整合性保護」を無効にする必要があります。

まず、端末でルートレス構成のコマンドを実行する必要があります

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

次に、リカバリパーティションのターミナルで以下のコマンドを実行する必要があります(リカバリOS)

# csrutil disable
# reboot

私はそのように私の問題を解決しました。最初の部分が必要かどうかはわかりません。好きなようにお試しください。

- 警告

すべてが機能したら、SIPを再度有効にする必要があります。

単に再起動してリカバリモードにしてターミナルで実行するだけです

# csrutil enable

csrutil:システム整合性保護の構成


10
ダメダメダメ。これは、ユーザー空間で実行されるユーティリティです。これを回避する比較的簡単な方法については、stackoverflow.com / a / 33024464/743638を参照してください。1.署名されていないカーネル拡張機能からの保護の無効化2.システムバイナリの変更3.システムパス上での検査とマウントなどは、簡単なことです。少なくとも、インストールが完了するまで一時的にSIPを取り外してから、再びオンにすることをお勧めします。
Sacrilicious

6
私はこれをしません。これは問題を求めています。より優雅なソリューションアプローチについては、以下の私の回答を参照してください。
マリオ

1
質問は1か月以上答えられなかった。私は、これが当時の唯一の「検索可能な」解決策だったと思います。すべてがインストールされた後、SIPを有効にするためにいくつかの警告を使用して回答を編集します。
Ergun Ozyurt 2015年

12

El Capitanにpip経由でAWSをインストールしようとしましたが、このエラーが表示されます

OSError:[Errno 1]操作は許可されていません: '/var/folders/wm/jhnj0g_s16gb36y8kwvrgm7h0000gp/T/pip-wTnb_D-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six- 1.4.1-py2.7.egg-info '

ここで答えを見つけました

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

わたしにはできる :)


10

MacOS Sierraでも同じエラーが発生しました。私はこれらのステップに従い、無傷のパッケージを正常にインストールすることができました。

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 pip install --ignore-installed scrapy


5

いくつかの答えの組み合わせを試してみましたが、これは最終的にはうまくいきました:

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

乾杯


2

再度pythonをインストールします。

brew install python

もう一度やってみる:

sudo pip install scrapy

私のために働く、それが役立つことを願って


1

Macを再起動します->起動チャイムの後に「Command + R」を押したままにします-> OS Xユーティリティを開きます->ターミナルを開き、「csrutil disable」と入力します-> OS Xを再起動します->ターミナルを開き、「csrutilステータス」を確認します



1

場合によっては、pip3の代わりにpipを使用してpython2フォルダーにpython3 libをインストールしようとすると、このような動作が実現することがあります。


0
  1. -SIP(システム整合性保護)を閉じます-次に再起動し、コマンド+ Rを使用してデバッグモードに入り、ターミナルを選択します:csrutil disable reboot

2。

sudo C_INCLUDE_PATH = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.11.sdk / usr / include / libxml2:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX .platform / Developer / 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 --ignore-installed 6を含める

3.-次に古い6つを削除し、再度インストールします。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 install six

4.-それを設定し直しますcsrutil enable reboot

-クラッピーは今動作します


-1

それは私のために働きます:

pip install scrapy --user -U

-1

私は依存関係がどこかに欠けていたので、プロジェクトの他の要件を次のようにインストールしました:

pip install --user -r requirements.txt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.