pipenv: pipenv install -e . fails due to dependency resolution for packages installed through direct URL
Issue description
The title may be a bit confusing, thus I hope description will be clearer.
My packages section of Pipfile is as follows:
[packages]
prometheus-client = "*"
uberlogging = {file = "https://github.com/haizaar/uberlogging/archive/v0.0.2.tar.gz"}
private_pkg = {file = "https://${GITHUB_RO_TOKEN}:@github.com/Org/private_pkg/archive/v0.1.0.tar.gz"}
pipenv install passes fine, but then I try to do pipenv install --dev -e . with the following setup.py:
from setuptools import find_packages, setup
setup(
name="foo",
version="0.0.1",
url="https://github.com/...",
packages=find_packages(),
install_requires=(
"prometheus-client",
"uberlogging",
"private_pkg",
)
)
it fails with Could not find a version that matches private_pkg, though private_pkg is listed in the
satisfied requirements below. pip install -e . works just fine in pipenv’s venv and the resulting installation is functional. Bug?
$ pipenv install --dev -e .
Installing -e .…
Obtaining file:///home/haizaar/dev/healthshield/channeler
Requirement already satisfied, skipping upgrade: prometheus-client in /home/.../lib/python3.6/site-packages (from foo==0.0.1) (0.4.2)
Requirement already satisfied, skipping upgrade: uberlogging in /home/.../lib/python3.6/site-packages (from foo==0.0.1) (0.0.2)
Requirement already satisfied, skipping upgrade: private_pkg in /home/.../lib/python3.6/site-packages (from foo==0.0.1) (0.1.0)
Requirement already satisfied, skipping upgrade: python-json-logger in /home/.../lib/python3.6/site-packages (from uberlogging->foo==0.0.1) (0.1.9)
Requirement already satisfied, skipping upgrade: humanfriendly in /home/.../lib/python3.6/site-packages (from uberlogging->foo==0.0.1) (4.17)
Requirement already satisfied, skipping upgrade: structlog in /home/.../lib/python3.6/site-packages (from uberlogging->foo==0.0.1) (18.2.0)
Requirement already satisfied, skipping upgrade: coloredlogs in /home/.../lib/python3.6/site-packages (from uberlogging->foo==0.0.1) (10.0)
Requirement already satisfied, skipping upgrade: pyyaml in /home/.../lib/python3.6/site-packages (from private_pkg->foo==0.0.1) (3.13)
Requirement already satisfied, skipping upgrade: configmanager in /home/.../lib/python3.6/site-packages (from private_pkg->foo==0.0.1) (1.34.1)
Requirement already satisfied, skipping upgrade: setuptools in /home/.../lib/python3.6/site-packages (from python-json-logger->uberlogging->foo==0.0.1) (40.5.0)
Requirement already satisfied, skipping upgrade: six in /home/.../lib/python3.6/site-packages (from structlog->uberlogging->foo==0.0.1) (1.11.0)
Requirement already satisfied, skipping upgrade: configparser==3.5.0 in /home/.../lib/python3.6/site-packages (from configmanager->private_pkg->foo==0.0.1) (3.5.0)
Requirement already satisfied, skipping upgrade: future==0.16.0 in /home/.../lib/python3.6/site-packages (from configmanager->private_pkg->foo==0.0.1) (0.16.0)
Requirement already satisfied, skipping upgrade: hookery==1.4.0 in /home/.../lib/python3.6/site-packages (from configmanager->private_pkg->foo==0.0.1) (1.4.0)
Requirement already satisfied, skipping upgrade: funcsigs in /home/.../lib/python3.6/site-packages (from hookery==1.4.0->configmanager->private_pkg->foo==0.0.1) (1.0.2)
Installing collected packages: foo
Found existing installation: foo 0.0.1
Uninstalling foo-0.0.1:
Successfully uninstalled foo-0.0.1
Running setup.py develop for foo
Successfully installed foo
Adding foo to Pipfile's [dev-packages]…
Pipfile.lock (68f562) out of date, updating to (4f417c)…
Locking [dev-packages] dependencies…
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches private_pkg
No versions found
Was https://pypi.org/simple reachable?
$ pipenv --support
Pipenv version: '2018.10.13'
Pipenv location: '/home/.../.local/lib/python3.6/site-packages/pipenv'
Python location: '/usr/bin/python3.6'
Python installations found:
3.7.0:/usr/bin/python3.73.7.0:/usr/bin/python3.7m3.6.6:/home/.../bin/python3.63.6.6:/usr/bin/python3.63.6.6:/usr/bin/python3.6m3.5.2:/usr/bin/python3.53.5.2:/usr/bin/python3.5m2.7.12:/usr/bin/python2.7
PEP 508 Information:
{'implementation_name': 'cpython',
'implementation_version': '3.6.6',
'os_name': 'posix',
'platform_machine': 'x86_64',
'platform_python_implementation': 'CPython',
'platform_release': '4.15.0-36-generic',
'platform_system': 'Linux',
'platform_version': '#39~16.04.1-Ubuntu SMP Tue Sep 25 08:59:23 UTC 2018',
'python_full_version': '3.6.6',
'python_version': '3.6',
'sys_platform': 'linux'}
System environment variables:
LC_PAPERXDG_VTNRXDG_SESSION_IDLC_ADDRESSCLUTTER_IM_MODULELC_MONETARYXDG_GREETER_DATA_DIRVIRTUALENVWRAPPER_SCRIPTVIRTUALENVWRAPPER_PROJECT_FILENAMESESSIONGPG_AGENT_INFOPIP_PYTHON_PATHSHELLVTE_VERSIONTERMQT_LINUX_ACCESSIBILITY_ALWAYS_ONDIRENV_DIRLC_NUMERICWINDOWIDGNOME_KEYRING_CONTROLUPSTART_SESSIONGTK_MODULESUSERQT_ACCESSIBILITYLC_TELEPHONELS_COLORSUNITY_HAS_3D_SUPPORTXDG_SESSION_PATHXDG_SEAT_PATHSSH_AUTH_SOCKDEFAULTS_PATHVIRTUAL_ENVWORKON_HOMEDIRENV_WATCHESUNITY_DEFAULT_PROFILEXDG_CONFIG_DIRSPIPENV_ACTIVEPATHDESKTOP_SESSIONQT_QPA_PLATFORMTHEMEQT_IM_MODULEVIRTUALENVWRAPPER_HOOK_DIRLC_IDENTIFICATIONJOBPWDXDG_SESSION_TYPEXMODIFIERSLANGGNOME_KEYRING_PIDMANDATORY_PATHGDM_LANGLC_MEASUREMENTNODE_PATHIM_CONFIG_PHASECOMPIZ_CONFIG_PROFILEPS1PYTHONDONTWRITEBYTECODEPAPERSIZEGDMSESSIONGTK2_MODULESSESSIONTYPEGITAWAREPROMPTXDG_SEATHOMESHLVLLANGUAGE_VIRTUALENVWRAPPER_APIGNOME_DESKTOP_SESSION_IDUPSTART_INSTANCEPIP_SHIMS_BASE_MODULELOGNAMEUPSTART_EVENTSXDG_SESSION_DESKTOPPYTHONPATHGITHUB_RO_TOKENCOMPIZ_BIN_PATHQT4_IM_MODULEXDG_DATA_DIRSDBUS_SESSION_BUS_ADDRESSLESSOPENUPSTART_JOBINSTANCEDISPLAYXDG_RUNTIME_DIRGTK_IM_MODULEXDG_CURRENT_DESKTOPDIRENV_DIFFLC_TIMELESSCLOSEXAUTHORITYLC_NAME_
Pipenv–specific environment variables:
PIPENV_ACTIVE:1
Debug–specific environment variables:
SHELL:/bin/bashLANG:en_US.UTF-8
Contents of Pipfile (‘/home/…/Pipfile’):
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
prometheus-client = "*"
uberlogging = {file = "https://github.com/haizaar/uberlogging/archive/v0.0.2.tar.gz"}
private_pkg = {file = "https://${GITHUB_RO_TOKEN}:@github.com/Org/private_pkg/archive/v0.1.0.tar.gz"}
[dev-packages]
medium = {editable = true, path = "."}
[requires]
python_version = "3.6"
Contents of Pipfile.lock (‘/home/…/Pipfile.lock’):
{
"_meta": {
"hash": {
"sha256": "ae2ceeae45ac82d25d2563ac6b7d421babd5dda5437a4f0c35fddc78be4f417c"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.6"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"private_pkg: {
"file": "https://${GITHUB_RO_TOKEN}:@github.com/Org/private_pkg/archive/v0.1.0.tar.gz"
},
"prometheus-client": {
"hashes": [
"sha256:046cb4fffe75e55ff0e6dfd18e2ea16e54d86cc330f369bebcc683475c8b68a9"
],
"index": "pypi",
"version": "==0.4.2"
},
"uberlogging": {
"file": "https://github.com/haizaar/uberlogging/archive/v0.0.2.tar.gz"
}
},
"develop": {}
}
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 3
- Comments: 19 (7 by maintainers)
Commits related to this issue
- Fix direct url dependency resolution - Fix dependecy resolution for _all_ dependencies which are just direct URLs or files - Bypass pip-tools for non-editable requirements which can be resolved - F... — committed to pypa/pipenv by techalchemy 6 years ago
- Fix direct url dependency resolution - Fix dependecy resolution for _all_ dependencies which are just direct URLs or files - Bypass pip-tools for non-editable requirements which can be resolved - F... — committed to pypa/pipenv by techalchemy 6 years ago
- Fix pep508 direct URL depedencies - Fixes #3148 Signed-off-by: Dan Ryan <dan@danryan.co> — committed to pypa/pipenv by techalchemy 5 years ago
- Merge tag 'v2020.5.28' of github.com:pypa/pipenv 2020.5.28 (2020-05-28) ====================== Features & Improvements ----------------------- - `pipenv install` and `pipenv sync` will no longer ... — committed to fwojciak/pipenv by deleted user 4 years ago
Yeeeee-haw!!! It works! Thank you very much!
This was incredibly challenging but I have it completely implemented and will be merging it tonight
Next item on my list due to dependency links being disabled as of today’s pip release. It’s holding back my other changes now so I’ll be looking at it tomorrow. Thanks for your patience and sorry for taking so long on this one.
Yes sorry 😃 I haven’t actually sorted out how to hand this over to pip during resolution, but I need to get this sorted out before I cut the release