# Intermittent Error during Pip Install of Certain Libraries (tox and codecov in particular)

**URL:** <https://travis-ci.community/t/intermittent-error-during-pip-install-of-certain-libraries-tox-and-codecov-in-particular/4853>\
**Category:** Travis CI Discussions & Feedback\
**Tags:** python\
**Created:** [August 24, 2019, 5:03pm UTC](https://travis-ci.community/t/intermittent-error-during-pip-install-of-certain-libraries-tox-and-codecov-in-particular/4853 "2019-08-24T17:03:56Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![insightindustry](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/insightindustry/32/2590_2.png) [@insightindustry](https://travis-ci.community/u/insightindustry)\
**Post date:** [August 24, 2019, 5:03pm UTC](https://travis-ci.community/t/intermittent-error-during-pip-install-of-certain-libraries-tox-and-codecov-in-particular/4853/1 "2019-08-24T17:03:56Z")

</div>

So here’s a weird and strangely intermittent issue for which I have no discernible pattern. I maintain an open-source Python library (called SQLAthanor, with source [here](https://github.com/insightindustry/sqlathanor) and Travis page [here](https://travis-ci.org/insightindustry/sqlathanor)) and run all of my unit tests through Travis CI. My build matrix is fairly broad, encompassing:

- Python 2.7 - 3.7 (3.7 on `xenial`, previous versions on `trusty`)
- Multiple versions of SQLAlchemy
- Multiple versions of PyYAML
- Multiple versions of simplejson

and all of the combinations of those items. Recently - as in the last few weeks - I have observed a pattern where my Travis jobs are erroring out during their environment setup phase. Specifically, when the various environmental requirements are being installed, and most frequently with `tox` and `codecov`. What typically happens is that I get a build error like the following in my build log:

> $ python --version  
> Python 3.4.6  
> $ pip --version  
> pip 9.0.1 from /home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages (python 3.4)  
> 6.83s$ pip install -U tox codecov  
> Collecting tox  
>   
> Installing collected packages: six, attrs, pyparsing, packaging, scandir, pathlib2, more-itertools, zipp, importlib-metadata, pluggy, py, filelock, virtualenv, toml, tox, coverage, idna, urllib3, certifi, chardet, requests, codecov  
> Found existing installation: six 1.10.0  
> Uninstalling six-1.10.0:  
> Successfully uninstalled six-1.10.0  
> Rolling back uninstall of six  
> Exception:  
> Traceback (most recent call last):  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 2813, in \_dep\_map  
> return self.\_\_dep\_map  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 2624, in **getattr**  
> raise AttributeError(attr)  
> AttributeError: \_DistInfoDistribution\_\_dep\_map  
> During handling of the above exception, another exception occurred:  
> Traceback (most recent call last):  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 2804, in \_parsed\_pkg\_info  
> return self.\_pkg\_info  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 2624, in **getattr**  
> raise AttributeError(attr)  
> AttributeError: \_pkg\_info  
> During handling of the above exception, another exception occurred:  
> Traceback (most recent call last):  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pip/basecommand.py”, line 215, in main  
> status = self.run(options, args)  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pip/commands/install.py”, line 342, in run  
> prefix=options.prefix\_path,  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pip/req/req\_set.py”, line 784, in install  
> \*\*kwargs  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pip/req/req\_install.py”, line 851, in install  
> self.move\_wheel\_files(self.source\_dir, root=root, prefix=prefix)  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pip/req/req\_install.py”, line 1064, in move\_wheel\_files  
> isolated=self.isolated,  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pip/wheel.py”, line 247, in move\_wheel\_files  
> prefix=prefix,  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pip/locations.py”, line 140, in distutils\_scheme  
> d = Distribution(dist\_args)  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/setuptools/dist.py”, line 321, in **init**  
> \_Distribution. **init** (self, attrs)  
> File “/opt/python/3.4.6/lib/python3.4/distutils/dist.py”, line 280, in **init**  
> self.finalize\_options()  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/setuptools/dist.py”, line 389, in finalize\_options  
> ep.require(installer=self.fetch\_build\_egg)  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 2324, in require  
> items = working\_set.resolve(reqs, env, installer, extras=self.extras)  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 862, in resolve  
> new\_requirements = dist.requires(req.extras)[::-1]  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 2568, in requires  
> dm = self.\_dep\_map  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 2815, in \_dep\_map  
> self.\_\_dep\_map = self.\_compute\_dependencies()  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 2824, in \_compute\_dependencies  
> for req in self.\_parsed\_pkg\_info.get\_all(‘Requires-Dist’) or :  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 2806, in \_parsed\_pkg\_info  
> metadata = self.get\_metadata(self.PKG\_INFO)  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 1468, in get\_metadata  
> value = self.\_get(self.\_fn(self.egg\_info, name))  
> File “/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/pkg\_resources/ **init**.py”, line 1577, in \_get  
> with open(path, ‘rb’) as stream:  
> FileNotFoundError: [Errno 2] No such file or directory: ‘/home/travis/virtualenv/python3.4.6/lib/python3.4/site-packages/six-1.10.0.dist-info/METADATA’  
> The command “pip install -U tox codecov” failed and exited with 2 during .

What’s strange about this is that the problem is intermittent (affects about 2 - 5 out of 131 jobs), and when I restart a job that errored out it usually completes successfully after the restart. Sometimes it will error out again (sometimes three or four times in a row!), but if I keep restarting it eventually completes with no problem. Here’s a link to a job that I specifically did not restart so that the full log would be available: [Travis CI - Test and Deploy with Confidence](https://travis-ci.org/insightindustry/sqlathanor/jobs/576235446)

The problem seems to be most common on my Python 3.4 jobs, but I’ve seen it occur sometimes (very rarely) on Python 3.5 and 3.6 as well.

Does anyone have any suggestions?

---

<div class="post-metadata">

**Author:** ![native-api](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/native-api/32/430_2.png) [@native-api](https://travis-ci.community/u/native-api)\
**Post date:** [August 24, 2019, 6:30pm UTC](https://travis-ci.community/t/intermittent-error-during-pip-install-of-certain-libraries-tox-and-codecov-in-particular/4853/2 "2019-08-24T18:30:50Z")

</div>

Possible duplicate of

[https://travis-ci.community/t/python-3-4-failing-to-uninstall-pre-installed-six-since-a-few-days/3562](https://travis-ci.community/t/python-3-4-failing-to-uninstall-pre-installed-six-since-a-few-days/3562)
