Hyperion Hyperion - 15 days ago 5
Python Question

Python - Cannot install requests[security]: Operation not permitted

When I try to run

sudo pip2 install requests[security]
I get this error:

MacBook-Pro-di-Francesco:~ francesco$ sudo pip2 install requests[security]
The directory '/Users/francesco/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/francesco/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting requests[security]
Downloading requests-2.12.1-py2.py3-none-any.whl (574kB)
100% |████████████████████████████████| 583kB 406kB/s
Requirement already satisfied: idna>=2.0.0; extra == "security" in /Library/Python/2.7/site-packages (from requests[security])
Requirement already satisfied: cryptography>=1.3.4; extra == "security" in /Library/Python/2.7/site-packages (from requests[security])
Collecting pyOpenSSL>=0.14; extra == "security" (from requests[security])
Downloading pyOpenSSL-16.2.0-py2.py3-none-any.whl (43kB)
100% |████████████████████████████████| 51kB 738kB/s
Requirement already satisfied: ipaddress in /Library/Python/2.7/site-packages (from cryptography>=1.3.4; extra == "security"->requests[security])
Requirement already satisfied: enum34 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4; extra == "security"->requests[security])
Requirement already satisfied: pyasn1>=0.1.8 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4; extra == "security"->requests[security])
Requirement already satisfied: cffi>=1.4.1 in /Library/Python/2.7/site-packages (from cryptography>=1.3.4; extra == "security"->requests[security])
Requirement already satisfied: setuptools>=11.3 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from cryptography>=1.3.4; extra == "security"->requests[security])
Requirement already satisfied: six>=1.4.1 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from cryptography>=1.3.4; extra == "security"->requests[security])
Requirement already satisfied: pycparser in /Library/Python/2.7/site-packages (from cffi>=1.4.1->cryptography>=1.3.4; extra == "security"->requests[security])
Installing collected packages: pyOpenSSL, requests
Found existing installation: pyOpenSSL 0.13.1
DEPRECATION: Uninstalling a distutils installed project (pyOpenSSL) 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 pyOpenSSL-0.13.1:
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 342, in run
prefix=options.prefix_path,
File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 778, in install
requirement.uninstall(auto_confirm=True)
File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 754, in uninstall
paths_to_remove.remove(auto_confirm)
File "/Library/Python/2.7/site-packages/pip/req/req_uninstall.py", line 115, in remove
renames(path, new_path)
File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 267, 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-aDFxxQ-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pyOpenSSL-0.13.1-py2.7.egg-info'


What's the problem?

Answer

It's generally a bad idea to install libraries on your system-wide Python. Use a virtualenv for each project instead.

See also: http://apple.stackexchange.com/a/209583

Comments