-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pipenv does not lock dependencies of installed wheels #1937
Comments
I also commented on issue #480, but after figuring out exactly what was happening I wasn't sure if it was the same issue as the creator of that issue had (although it could still be). |
See #1683 -- not sure if we want to support this but I have a fix anyway |
I'm not very familiar with Python's packaging ecosystem, so I'm quite curious how this could be something that shouldn't be supported? Installing wheels from local path/HTTP seems like a straightforward use-case to me. If that's not the case, then I'm probably doing something wrong and I'd love to figure out how to correct that :) |
@TotempaaltJ The typical usage of installing from local wheels is when you don’t have Internet access, in which case you should have all your dependencies locally anyway (otherwise you’d still need to download them, defeating the purpose). There’s nothing wrong in particular, but a little unconventional. |
@uranusjr ahh, of course. Thanks! So how about installing wheels over HTTP(S)? We're currently installing one that way thru Github Releases. |
@TotempaaltJ In that case it’s usually recommended to upload it to an index server—pypi.org if possible, or a private one If making the package public isn’t an option. |
@uranusjr I'm sure we'll do that eventually, but right now it's a bit overkill for a single library that we need a certain branch of ;) We currently have a workaround (just installing the wheel separately next to Thanks! 🎉 |
@TotempaaltJ installing the wheel is fine, and works fine, and installing its dependencies also works fine, but resolving those dependencies is tricky. |
@techalchemy Right, sorry! My vocab/semantics was a bit off 😅 We have a |
When installing a dependency through a wheel (using either
https://
orfile://
), the initial installation will work fine and install all the library's dependencies into your virtual env. Runningpipenv graph
will show the dependency tree correctly. The resultingPipenv.lock
file though, will not have the child dependencies of the wheel (even after runningpipenv lock
again).I created a repo that shows the error happening in one script: https://github.com/TotempaaltJ/minimal-pipenv-wheel-fail. If you clone it and run
test.sh
it'll run through the steps, executing them as it goes, to show that it fails to import the dependency after installing straight from aPipenv.lock
file.$ python -m pipenv.help output
Pipenv version:
'11.9.0'
Pipenv location:
'/usr/local/lib/python3.6/site-packages/pipenv'
Python location:
'/usr/local/opt/python/bin/python3.6'
Other Python installations in
PATH
:2.7
:/usr/bin/python2.7
2.7
:/usr/bin/python2.7
3.6
:/usr/local/bin/python3.6m
3.6
:/usr/local/bin/python3.6
2.7.10
:/usr/bin/python
3.6.4
:/usr/local/bin/python3
PEP 508 Information:
System environment variables:
LC_ALL
LANG
XPC_FLAGS
TERM_SESSION_ID
EDITOR
GPG_TTY
COLORTERM
__CF_USER_TEXT_ENCODING
ITERM_SESSION_ID
SSH_AUTH_SOCK
USER
PROMPT_DIRTRIM
PWD
HOME
LC_CTYPE
TERM_PROGRAM
TERM_PROGRAM_VERSION
Apple_PubSub_Socket_Render
ITERM_PROFILE
TMPDIR
XPC_SERVICE_NAME
TERM
SHELL
SHLVL
COLORFGBG
PROMPT_COMMAND
LOGNAME
PATH
PS1
OLDPWD
_
PYTHONDONTWRITEBYTECODE
PIP_PYTHON_PATH
PYTHONUNBUFFERED
Pipenv–specific environment variables:
Debug–specific environment variables:
PATH
:/Users/martijn/.cargo/bin:/Users/martijn/.local/bin:~/workspace/docker/bin:/Users/martijn/bin:/Users/martijn/.local/bin:/home/martijn/.gem/ruby/2.2.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/martijn/.fzf/bin
SHELL
:/usr/local/Cellar/bash/4.4.18/bin/bash
EDITOR
:nvim
LANG
:en_US
PWD
:/Users/martijn/Projects/lib/minimal-pipenv-fail/example
Contents of
Pipfile
('/Users/martijn/Projects/lib/minimal-pipenv-fail/example/Pipfile'):The text was updated successfully, but these errors were encountered: