Seems like pipenv is broken in the latest workspace-full image.
Running:
pipenv --python 3.7
pipenv install tensorflow
fails with:
✘ Locking Failed!
Traceback (most recent call last):
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/resolver.py", line 126, in <module>
main()
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/resolver.py", line 119, in main
parsed.requirements_dir, parsed.packages)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/resolver.py", line 85, in _main
requirements_dir=requirements_dir,
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/resolver.py", line 69, in resolve
req_dir=requirements_dir
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
req_dir=req_dir,
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
resolved_tree = resolver.resolve()
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/utils.py", line 385, in resolve
results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
for dep in self._iter_dependencies(best_match):
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
dependencies = self.repository.get_dependencies(ireq)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
legacy_results = self.get_legacy_dependencies(ireq)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
results = resolver._resolve_one(reqset, ireq)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for
self.require_hashes
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
abstract_dist.prep_for_dist(finder, self.build_isolation)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
self.req.run_egg_info()
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info
command_desc='python setup.py egg_info')
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess
% (command_desc, proc.returncode, cwd))
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmp1jiah0_tbuild/functools32/
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/resolver.py", line 126, in <module>
main()
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/resolver.py", line 119, in main
parsed.requirements_dir, parsed.packages)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/resolver.py", line 85, in _main
requirements_dir=requirements_dir,
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/resolver.py", line 69, in resolve
req_dir=requirements_dir
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
req_dir=req_dir,
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
resolved_tree = resolver.resolve()
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/utils.py", line 385, in resolve
results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
for dep in self._iter_dependencies(best_match):
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
dependencies = self.repository.get_dependencies(ireq)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
legacy_results = self.get_legacy_dependencies(ireq)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
results = resolver._resolve_one(reqset, ireq)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for
self.require_hashes
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
abstract_dist.prep_for_dist(finder, self.build_isolation)
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
self.req.run_egg_info()
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info
command_desc='python setup.py egg_info')
File "/home/gitpod/.pyenv/versions/2.7.16/lib/python2.7/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess
% (command_desc, proc.returncode, cwd))
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmp1jiah0_tbuild/functools32/
Note: Only affects packages that have subdependencies. One-offs like numpy and six work, those that depend on other PyPI packages (like tensorflow and flask) fail.
@extremepayne I tried to understand what's going on there, and it appears to be an issue which is shadowed by the one we see above☝️
e.g. I tried with forcing to use python3 (python3 -m pipenv install ...) but it still fails with the same error. some similar issues I found via google where suggesting that it's hard to find the underlying issue when this one is raised.
I'll check if there is any incompatibility that might cause this shortly.
Hi @extremepayne! This is a hard one, unfortunately.
It seems to be an issue in latest release of pipenv (from 20-I-could-not-believe-it-18!) After reading a ton of similar issues, this post finally help me to work around.
So, basically I tried with laster master state of pipenv and it worked:
gitpod /workspace/foo $ python3 -m pip install https://codeload.github.com/pypa/pipenv/zip/master
gitpod /workspace/foo $ pipenv --version
pipenv, version 2018.11.27.dev0
gitpod /workspace/foo $ pipenv install tensorflow

Out of curiosity, I tried this on local OSX environment (pyenv global 3.7.4) and it didn't work either.
It's a pity, but I've no clue how to solve this as long as the fix from upstream isn't released yet :-(
Oh wow, a problem with pipenv? That's a shame. It appears I read too much into articles like this and didn't look for ones like this. Looks like I'll go back to using regular pip. Man, I was really looking forward to all the purported benefits of pipenv.
In the meantime, you can close this issue. While pipenv would be nice, it's not necessary.
But isn't it good to keep this issue open for tracking purposes
I mean, I guess so, but as long as you guys are on the lookout for new releases (and I hope you already are) there isn't anything else you can do.
Besides like, contributing to pipenv. But with all the problems listed in that second link above, sounds like it might not be the best idea.
So yeah I guess you can leave it open just to remind yourself it's broken but there's no action to be taken.
This seemed to be fixed and it does install now
This seemed to be fixed and it does install now
I'll close this now.
After spending a full day wrestling python environment issues, I can confirm that pyenv in combination with gitpod's way of setting up python continues to cause a number of issues. Not only with tensorflow , but also with other non-trivial python packages that have system native dependencies such as gi and gstreamer.
Since gitpod does not allow installing native packages outside the docker image, but installing python packages in the docker image causes pyenv conflicts, I would recommend that pyenv is not a default install for gitpod, but instead an optional one for pure python apps. At least until the gitpod - pyenv combination is more polished to handle advanced scenarios.
More context of the issues I'm dealing with [here].