Does get-pip work under sudo?

Steven D'Aprano steve at pearwood.info
Sat Apr 16 12:04:31 EDT 2016


I tried to install pip following the instructions here:

https://pip.pypa.io/en/stable/installing/

but whenever I tried to run the installer, I got an error. If I ran as a
regular user:

python2.7 get-pip.py

I'd get a permission denied error (as expected) trying to write to the
site-packages directory:

OSError: [Errno 13] Permission
denied: '/usr/local/lib/python2.7/site-packages/pip-8.1.1.dist-info'

This does not surprise me, and I'm not concerned by that.

But if I ran using sudo, I'd get a surprising error. I tried using both 2.7
and 3.3, and got similar errors each time:

sudo python2.7 get-pip.py

IOError: [Errno 21] Is a directory: '/tmp'


sudo python3.3 get-pip.py

IsADirectoryError: [Errno 21] Is a directory: '/tmp'


This surprises me. Is this a bug in pip?

Here are the full tracebacks:



# Python 2.7 traceback

Exception:
Traceback (most recent call last):
  File "/tmp/tmpCYNTpT/pip.zip/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/tmp/tmpCYNTpT/pip.zip/pip/commands/install.py", line 249, in run
    with self._build_session(options) as session:
  File "/tmp/tmpCYNTpT/pip.zip/pip/basecommand.py", line 72, in
_build_session
    insecure_hosts=options.trusted_hosts,
  File "/tmp/tmpCYNTpT/pip.zip/pip/download.py", line 321, in __init__
    self.headers["User-Agent"] = user_agent()
  File "/tmp/tmpCYNTpT/pip.zip/pip/download.py", line 97, in user_agent
    zip(["lib", "version"], platform.libc_ver()),
  File "/usr/local/lib/python2.7/platform.py", line 163, in libc_ver
    f = open(executable,'rb')
IOError: [Errno 21] Is a directory: '/tmp'
Traceback (most recent call last):
  File "get-pip.py", line 19154, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 172, in bootstrap
    sys.exit(pip.main(["install", "--upgrade"] + args))
  File "/tmp/tmpCYNTpT/pip.zip/pip/__init__.py", line 213, in main
  File "/tmp/tmpCYNTpT/pip.zip/pip/basecommand.py", line 245, in main
  File "/tmp/tmpCYNTpT/pip.zip/pip/basecommand.py", line 72, in
_build_session
  File "/tmp/tmpCYNTpT/pip.zip/pip/download.py", line 321, in __init__
  File "/tmp/tmpCYNTpT/pip.zip/pip/download.py", line 97, in user_agent
  File "/usr/local/lib/python2.7/platform.py", line 163, in libc_ver
    f = open(executable,'rb')
IOError: [Errno 21] Is a directory: '/tmp'



# Python 3.3 traceback

Exception:
Traceback (most recent call last):
  File "/tmp/tmp75x40t/pip.zip/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/tmp/tmp75x40t/pip.zip/pip/commands/install.py", line 249, in run
    with self._build_session(options) as session:
  File "/tmp/tmp75x40t/pip.zip/pip/basecommand.py", line 72, in
_build_session
    insecure_hosts=options.trusted_hosts,
  File "/tmp/tmp75x40t/pip.zip/pip/download.py", line 321, in __init__
    self.headers["User-Agent"] = user_agent()
  File "/tmp/tmp75x40t/pip.zip/pip/download.py", line 97, in user_agent
    zip(["lib", "version"], platform.libc_ver()),
  File "/usr/local/lib/python3.3/platform.py", line 162, in libc_ver
    f = open(executable,'rb')
IsADirectoryError: [Errno 21] Is a directory: '/tmp'
Traceback (most recent call last):
  File "get-pip.py", line 19154, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 172, in bootstrap
    sys.exit(pip.main(["install", "--upgrade"] + args))
  File "/tmp/tmp75x40t/pip.zip/pip/__init__.py", line 213, in main
  File "/tmp/tmp75x40t/pip.zip/pip/basecommand.py", line 245, in main
  File "/tmp/tmp75x40t/pip.zip/pip/basecommand.py", line 72, in
_build_session
  File "/tmp/tmp75x40t/pip.zip/pip/download.py", line 321, in __init__
  File "/tmp/tmp75x40t/pip.zip/pip/download.py", line 97, in user_agent
  File "/usr/local/lib/python3.3/platform.py", line 162, in libc_ver
    f = open(executable,'rb')
IsADirectoryError: [Errno 21] Is a directory: '/tmp'




-- 
Steven




More information about the Python-list mailing list