-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Issue description
While investigating #3404 I tried to use the HEAD of master.
I installed 6c62d23
$ pip3 install git+git://github.com/pypa/pipenv.git@6c62d23cfcd1255b62bf7ef31b97caa5af492f46
We are getting some errors due to a fairly old repos metadata which we install with a direct URL. We suspect this is related to #3298
We have this dependency which seems to cause the issue:
[packages]
xmla = {editable = true,git = "https://github.com/alloytech/olap.git",ref = "py3",subdirectory = "xmla"}
All the modules seem to have the name and version. https://github.com/alloytech/olap/blob/py3/xmla/setup.py
Expected result
$ pipenv lock
works like it does with version 2018.11.26
.
Actual result
$ pipenv lock
fails (there are two print statement included to see the metadata) due to name missing.
$ pipenv lock --verbose
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Building requirements...
⠇ Locking...Branch 'py3' set up to track remote branch 'py3' from 'origin'.
Switched to a new branch 'py3'
Resolving dependencies...
Metadata-Version: 2.1
✘ Locking Failed!
Metadata-Version: 2.1
Name: UNKNOWN
Version: 0.0.0
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Platform: UNKNOWN
UNKNOWN
<LegacyMetadata UNKNOWN 0.0.0>
Traceback (most recent call last):
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/metadata.py", line 732, in __init__
self._data = json.loads(data)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/resolver.py", line 681, in <module>
main()
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/resolver.py", line 677, in main
parsed.requirements_dir, parsed.packages, parse_only=parsed.parse_only)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/resolver.py", line 640, in _main
resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/resolver.py", line 610, in resolve_packages
requirements_dir=requirements_dir,
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/resolver.py", line 593, in resolve
req_dir=requirements_dir
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 1088, in resolve_deps
req_dir=req_dir,
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 749, in actually_resolve_deps
deps, index_lookup, markers_lookup, project, sources,
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 363, in get_metadata
constraint_update, lockfile_update = cls.get_deps_from_req(req)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 428, in get_deps_from_req
req_list, lockfile = get_vcs_deps(reqs=[req])
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 1577, in get_vcs_deps
with temp_path(), locked_repository(requirement) as repo:
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 1736, in locked_repository
with requirement.req.locked_vcs_repo(src_dir=src_dir) as repo:
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 2334, in locked_vcs_repo
self._parsed_line.vcsrepo = vcsrepo
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 800, in vcsrepo
kwargs=wheel_kwargs,
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 1001, in create
created.get_info()
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 875, in get_info
self.build()
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 766, in build
os.path.join(self.extra_kwargs["build_dir"], dist_path)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 788, in get_metadata_from_wheel
metadata_dict = get_metadata_from_wheel(wheel_path)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 350, in get_metadata_from_wheel
metadata = dist.metadata
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/util.py", line 446, in __get__
value = self.func(obj)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/wheel.py", line 234, in metadata
result = Metadata(fileobj=wf)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/metadata.py", line 743, in __init__
self.validate()
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/metadata.py", line 960, in validate
missing, warnings = self._legacy.check(True)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/metadata.py", line 534, in check
raise MetadataMissingError(msg)
distlib.metadata.MetadataMissingError: missing required metadata: Name
Name: UNKNOWN
Version: 0.0.0
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Platform: UNKNOWN
UNKNOWN
<LegacyMetadata UNKNOWN 0.0.0>
Traceback (most recent call last):
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/metadata.py", line 732, in __init__
self._data = json.loads(data)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/resolver.py", line 681, in <module>
main()
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/resolver.py", line 677, in main
parsed.requirements_dir, parsed.packages, parse_only=parsed.parse_only)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/resolver.py", line 640, in _main
resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/resolver.py", line 610, in resolve_packages
requirements_dir=requirements_dir,
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/resolver.py", line 593, in resolve
req_dir=requirements_dir
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 1088, in resolve_deps
req_dir=req_dir,
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 749, in actually_resolve_deps
deps, index_lookup, markers_lookup, project, sources,
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 363, in get_metadata
constraint_update, lockfile_update = cls.get_deps_from_req(req)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 428, in get_deps_from_req
req_list, lockfile = get_vcs_deps(reqs=[req])
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 1577, in get_vcs_deps
with temp_path(), locked_repository(requirement) as repo:
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/utils.py", line 1736, in locked_repository
with requirement.req.locked_vcs_repo(src_dir=src_dir) as repo:
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 2334, in locked_vcs_repo
self._parsed_line.vcsrepo = vcsrepo
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 800, in vcsrepo
kwargs=wheel_kwargs,
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 1001, in create
created.get_info()
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 875, in get_info
self.build()
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 766, in build
os.path.join(self.extra_kwargs["build_dir"], dist_path)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 788, in get_metadata_from_wheel
metadata_dict = get_metadata_from_wheel(wheel_path)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/setup_info.py", line 350, in get_metadata_from_wheel
metadata = dist.metadata
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/util.py", line 446, in __get__
value = self.func(obj)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/wheel.py", line 234, in metadata
result = Metadata(fileobj=wf)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/metadata.py", line 743, in __init__
self.validate()
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/metadata.py", line 960, in validate
missing, warnings = self._legacy.check(True)
File "/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv/vendor/distlib/metadata.py", line 534, in check
raise MetadataMissingError(msg)
distlib.metadata.MetadataMissingError: missing required metadata: Name
Steps to replicate
$ pip3 install git+git://github.com/pypa/pipenv.git@6c62d23cfcd1255b62bf7ef31b97caa5af492f46
$ cat > Pipfile << EOF
[requires]
python_version = "3.7"
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
xmla = {editable = true,git = "https://github.com/alloytech/olap.git",ref = "py3",subdirectory = "xmla"}
EOF
$ pipenv lock
$ pipenv --support
Pipenv version: '2018.11.27.dev0'
Pipenv location: '/Users/jm/.pyenv/versions/3.7.2/lib/python3.7/site-packages/pipenv'
Python location: '/Users/jm/.pyenv/versions/3.7.2/bin/python3.7'
Python installations found:
3.7.2
:/Users/jm/.pyenv/versions/3.7.2/bin/python3
3.7.2
:/Users/jm/.pyenv/versions/3.7.2/bin/python3.7m
2.7.16
:/usr/local/bin/python2
2.7.16
:/usr/local/bin/pythonw
2.7.10
:/usr/bin/pythonw
2.7.10
:/usr/bin/python2.7
PEP 508 Information:
{'implementation_name': 'cpython',
'implementation_version': '3.7.2',
'os_name': 'posix',
'platform_machine': 'x86_64',
'platform_python_implementation': 'CPython',
'platform_release': '18.5.0',
'platform_system': 'Darwin',
'platform_version': 'Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT '
'2019; root:xnu-4903.251.3~3/RELEASE_X86_64',
'python_full_version': '3.7.2',
'python_version': '3.7',
'sys_platform': 'darwin'}
System environment variables:
SHELL
LSCOLORS
PYENV_HOOK_PATH
ITERM_PROFILE
COLORTERM
HBASE_CONF_DIR
LESS
XPC_FLAGS
TERM_PROGRAM_VERSION
HOSTNAME
JAVA_HOME
SSH_AUTH_SOCK
TERM_SESSION_ID
RIPGREP_CONFIG_PATH
SDKMAN_CANDIDATES_DIR
GPG_TTY
EDITOR
PYENV_VERSION
PWD
LOGNAME
FZF_DEFAULT_COMMAND
CDPATH
JENKINS
ITERM_SESSION_ID
HOME
LANG
_ZSH_TMUX_FIXED_CONFIG
SECURITYSESSIONID
KEYTIMEOUT
SDKMAN_VERSION
TMPDIR
LC_TERMINAL
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE
GROOVY_HOME
PYENV_DIR
TERM
WORK
USER
COLORFGBG
VISUAL
LC_TERMINAL_VERSION
SDKMAN_DIR
DISPLAY
SHLVL
PAGER
PGDATABASE
SDKMAN_CANDIDATES_API
XPC_SERVICE_NAME
DIRHISTORY_SIZE
LC_CTYPE
ZSH_TMUX_TERM
PYENV_ROOT
GOWORK
LC_ALL
Apple_PubSub_Socket_Render
PATH
SDKMAN_PLATFORM
OLDPWD
GOPATH
__CF_USER_TEXT_ENCODING
TERM_PROGRAM
PIP_DISABLE_PIP_VERSION_CHECK
PYTHONDONTWRITEBYTECODE
PIP_SHIMS_BASE_MODULE
PIP_PYTHON_PATH
PYTHONFINDER_IGNORE_UNSUPPORTED
Pipenv–specific environment variables:
Debug–specific environment variables:
PATH
:/Users/jm/.pyenv/versions/3.7.2/bin:/usr/local/Cellar/pyenv/1.2.10/libexec:/Users/jm/.pyenv/shims:/Users/jm/.sdkman/candidates/java/current/bin:/Users/jm/.sdkman/candidates/groovy/current/bin:/Users/jm/code/go/bin:/usr/local/sbin:/Users/jm/.npm/bin:/usr/local/bin:/Users/jm/.bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/jm/.fzf/bin
SHELL
:/usr/local/bin/zsh
EDITOR
:/usr/local/bin/nvim
LANG
:en_US.UTF-8
PWD
:/Users/jm/code/alloy
Contents of Pipfile
('/Users/jm/code/alloy/Pipfile'):
[requires]
python_version = "3.7"
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
xmla = {editable = true,git = "https://github.com/alloytech/olap.git",ref = "py3",subdirectory = "xmla"}