I have a Django application that I'm trying to upgrade the django module from 2.2.27 to 2.2.28 to close a SQL injection attack vector. I'm running this on a recent intel Mac with a current OS, Python 3.7.7, and the installation and package management are handled by pipenv.
If I clone the repository for the project and run pipenv install
things work fine and I can run the application. If I edit the Pipfile
and change django line to this: django = "==2.2.28"
and run pipenv update
I get a long error display:
Running $ pipenv lock then $ pipenv sync.
Locking [dev-packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✘ Locking Failed!
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-b7oz222d
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-a2zlgyg9
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-wnccio_d
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-qdyz7et_
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-f_ntiq_4
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-njy4pcni
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-9hanls1n
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-nh2nhv5s
INFO:pipenv.patched.notpip._internal.vcs.git:Cloning https://github.com/startwithlucy/zoomus.git (to revision v0.2.7) to /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pipenv-lodkowat-src/zoomus2
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-3tdmn4n6
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-or92fdaw
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-4afu8z2s
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-1gzv7c4l
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-_nb_ij8m
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-3mnuqo1i
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-8j29fail
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-equgr8uv
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-pyqzy2cq
INFO:pep517.envbuild:Temporary build environment: /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pep517-build-env-lw3xry9m
INFO:pipenv.patched.notpip._internal.operations.prepare:Obtaining django-drip-campaigns from git https://github.com/startwithlucy/[email protected]#egg=django-drip-campaigns (from -r /var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pipenvi4m0205lrequirements/pipenv-685yn2ll-constraints.txt (line 48))
INFO:pipenv.patched.notpip._internal.vcs.versioncontrol:Updating /Users/dougfarrell/.local/share/virtualenvs/cleo-backend-SIzTEXML-python/src/django-drip-campaigns clone (to revision v0.9.0)
INFO:pipenv.patched.notpip._internal.operations.prepare:Collecting rich-text-renderer==0.2.5
INFO:pipenv.patched.notpip._internal.network.download:Using cached rich_text_renderer-0.2.5.tar.gz (4.7 kB)
ERROR:pip.subprocessor:Command errored out with exit status 1:
command: /Users/dougfarrell/.local/share/virtualenvs/cleo-backend-SIzTEXML-python/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pip-resolver-cbn_1v0o/rich-text-renderer/setup.py'"'"'; __file__='"'"'/private/var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pip-resolver-cbn_1v0o/rich-text-renderer/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pip-resolver-cbn_1v0o/rich-text-renderer/pip-egg-info
cwd: /private/var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pip-resolver-cbn_1v0o/rich-text-renderer/
Complete output (5 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/fh/jwrr3ps55v97vr65pvvc25ch0000gp/T/pip-resolver-cbn_1v0o/rich-text-renderer/setup.py", line 22, in <module>
with open('README.rst', 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'README.rst'
----------------------------------------
Traceback (most recent call last):
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/resolver.py", line 764, in <module>
main()
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/resolver.py", line 760, in main
dev=parsed.dev)
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/resolver.py", line 741, in _main
resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages, dev)
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/resolver.py", line 709, in resolve_packages
requirements_dir=requirements_dir,
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/resolver.py", line 692, in resolve
req_dir=requirements_dir
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/utils.py", line 1403, in resolve_deps
req_dir=req_dir,
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/utils.py", line 1108, in actually_resolve_deps
resolver.resolve()
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/utils.py", line 823, in resolve
results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 180, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 268, in _resolve_one_round
their_constraints.extend(self._iter_dependencies(best_match))
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 383, in _iter_dependencies
dependencies = self.repository.get_dependencies(ireq)
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 229, in get_dependencies
legacy_results = self.get_legacy_dependencies(ireq)
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 351, in get_legacy_dependencies
download_dir, ireq, wheel_cache
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 306, in resolve_reqs
results = resolver._resolve_one(reqset, ireq)
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/legacy_resolve.py", line 339, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/legacy_resolve.py", line 287, in _get_abstract_dist_for
abstract_dist = self.preparer.prepare_linked_requirement(req)
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 509, in prepare_linked_requirement
req, self.req_tracker, self.finder, self.build_isolation,
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 95, in _get_prepared_distribution
abstract_dist.prepare_distribution_metadata(finder, build_isolation)
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/distributions/sdist.py", line 40, in prepare_distribution_metadata
self.req.prepare_metadata()
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 564, in prepare_metadata
self.metadata_directory = self._generate_metadata()
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 544, in _generate_metadata
details=self.name or "from {}".format(self.link)
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/build/metadata_legacy.py", line 118, in generate_metadata
command_desc='python setup.py egg_info',
File "/Users/dougfarrell/.pyenv/versions/3.7.7/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/subprocess.py", line 242, in call_subprocess
raise InstallationError(exc_msg)
pipenv.patched.notpip._internal.exceptions.InstallationError: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
I have this line in my Pipfile
: rich-text-renderer = "*"
Through just trying things out, if I remove this line from the Pipfile
and run pipenv update
again, the installation works, but if I add it back in, the pipenv update
fails.
If anyone has any suggestions or references about how to address this problem, I'd very much appreciate it.
Thanks!
CodePudding user response:
You pipenv is ok, the error is caused by the latest version 0.2.5 of rich-text-renderer. I think the package author had a mistake when distributing rich-text-renderer==0.2.5, the release tar file lost the file README.rst
which the setup.py will read.
# https://github.com/contentful/rich-text-renderer.py/blob/0.2.5/setup.py
readme = ''
with open('README.rst', 'r') as f:
readme = f.read()
You can confirm it by download the tar file from https://pypi.org/project/rich_text_renderer/#files. The same error is reported https://github.com/contentful/rich-text-renderer.py/issues/18
If you do not need the latest version rich-text-renderer==0.2.5, you can replace rich-text-renderer = "*"
to rich-text-renderer = "==0.2.4", pipenv update always install the latest version when *
is set.