0

I am trying to install some python packages but I am getting this kind of error every time.

The directory '/home/username/.cache/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 '/home/username/.cache/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.

Exception:
Traceback (most recent call last):
   File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 209, in main
status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 317, in run
requirement_set.prepare_files(finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 360, in prepare_files
ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 512, in _prepare_file
finder, self.upgrade, require_hashes)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 273, in populate_link
self.link = finder.find_requirement(self, upgrade)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 442, in find_requirement
all_candidates = self.find_all_candidates(req.name)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 400, in find_all_candidates
for page in self._get_pages(url_locations, project_name):
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 545, in _get_pages
page = self._get_page(location)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 648, in _get_page
return HTMLPage.get_page(link, session=self.session)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 757, in get_page
"Cache-Control": "max-age=600",
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 480, in get
return self.request('GET', url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 378, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
  File "/usr/share/python-wheels/CacheControl-0.11.5-py2.py3-none-any.whl/cachecontrol/adapter.py", line 46, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/adapters.py", line 376, in send
timeout=timeout
  File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 610, in urlopen
_stacktrace=sys.exc_info()[2])
  File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 228, in increment
total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

I looked it up on this site and Stack Overflow and all the solutions suggest installing

wheel or

setuptools But I am getting

Requirement already satisfied

The same problem occurs for trying to upgrade python packages.

Some of the commands that give me this error are:

sudo pip install -U textblob

My pip version is pip 8.1.1

What should I do?

  • For a start, exactly what error message says. Check permission for that directory, make sure You have enough privilege to write to it. – Fejs Jan 18 '17 at 06:34
  • I tried what the error message says. It's not working. I do have enough permission to write. –  Jan 18 '17 at 07:11

2 Answers2

0

Try, as suggested by the error message, running:

sudo -H pip install -U textblob

It is also well worth making sure that your version of pip is up to date with:

sudo python -m pip install -U pip

or

sudo -H python -m pip install -U pip
Steve Barnes
  • 27,618
  • 6
  • 63
  • 73
  • Ubuntu manages the system `pip` version though `apt-get` see http://stackoverflow.com/a/41675292/5320906. It won't let you upgrade `pip` using `pip` itself. – snakecharmerb Jan 18 '17 at 07:22
0

This happens to me frequently. Try this:

pip install textblob --user

This will work fine with other packages as well.

Thanks !

Arun Das
  • 333
  • 3
  • 11
  • I am still getting the same error message after trying this. It's not working. –  Jan 18 '17 at 07:07
  • This is not recommended but you could try `chown username -R /home/username/.cache/pip` and try `pip install textblob --user` again. – Arun Das Jan 18 '17 at 15:35
  • 1
    You could also try upgrading pip using one of the ways Steve mentioned, or using `pip install --upgrade pip`. – Arun Das Jan 18 '17 at 15:39