-
-
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 install all extras #1094
Comments
This may be fixed in #1095 but I have not tested... |
assuming this is fixed now |
It's not. Tested with the latest version from master. |
@hoesler are you still using the same exact pipfile? Can you provide the command you ran and terminal output? |
I created a gist for you with an example: https://gist.github.com/hoesler/66f4ab6a7d69d2cadde8bfe9a9582228 Just run The last command checks for the |
I still have the issue with pipenv 10.1.0. pipenv will only install the first item of the extras list. |
@sdementen I just looked over your This may be regressed but until we remove the other variables (and we did release version 11 as well) it will be hard to untangle. I am submitting a PR to your feature branch with the changes |
tx @techalchemy ! I have commented your PR with a new question (unrelated I think to this issue). And is the issue here (#1094) solved in pipenv ? |
@sdementen it was. As I mentioned, it’s unclear if it’s regressed currently |
@techalchemy I don't know if |
OK this was definitely broken, can confirm. fix pending |
@kennethreitz I believe this is still an issue for vcs deps. Take for example: |
@Mokubyow if you want to install something from vcs you need to install it as editable in order to resolve its dependencies. |
@techalchemy I attempted the install with Pipfile
pipenv install && pipenv run pip freeze
|
@Mokubyow for editable VCS dependencies, extras aren't resolved into the lockfile (on purpose) -- since the package is installed into editable mode, these are moving targets and must be re-resolved on each installation. |
@techalchemy not sure to understand if this is also applicable when installing the local project (".")... |
@techalchemy I agree with @sdementen it felt very much like a bug to me when my extras were not installed without warning even though it is the intended functionality. |
Is there a workaround to specify a VCS install with extras that has dependencies in |
You put it in the egg fragment and we parse it correctly which I’m not sure we are doing yet but there is an open issue on the topic @Mokubyow |
It seems to work the first time when I specify it in the egg fragment during I can open another issue with a minimal example to reproduce, but I'm afraid it might be a duplicate of a known issue. |
Use the `pipenv install -e .` strategy to include setuptools `install_requires` dependencies in Pipenv. This way abstracted requirements are expressed via `setup.cfg` while concrete dependencies are expressed via `Pipfile.lock`. Since extra requirements are not installed for editable dependencies (until this moment), `testing` dependencies are handled exclusively inside tox/pytest-runner venvs, and `dev` dependencies should be specified directly in the Pipenv file (not included in `setup.cfg`). ref: pypa/pipenv#1094 (comment) pypa/pipenv#1263 (comment) Basic workflow: - Add abstract dependencies to `setup.cfg` - Proxy `setup.cfg` by doing `pipenv install -e .` - Add dev dependencies by doing `pipenv install -d XXXX` - Use `pipenv update -d` to compile concrete dependencies (and install them in a virtualenv) - Add `Pipfile.lock` to source control for repeatable installations: https://caremad.io/posts/2013/07/setup-vs-requirement/ - Use `pipenv run` to run commands inside the venv (e.g. `pipenv run tox`) - Don't expose test requirements directly to pip-tools. Instead, just rely on tox/pytest-runner to install them inside the test venv.
@techalchemy this doesn't work now on |
Does not work with |
Confirmed that this doesn't work w/ version
(note the lack of output from The only reference to
|
At a glance, that particular package is built with PBR and it looks like their extras aren't landing in their wheels correctly, you can see here: https://pypi.org/pypi/molecule/2.19.0/json Compare that to the You can see the extras in the second package. The JSON API only parses requirements from wheels, and there are wheels uploaded from molecule, so that is certainly how you installed it. If the extra isn't there, pipenv can't install it. Please file an issue upstream, we have regression tests in place for this. |
@techalchemy Thanks for the clarification. I think molecule might need a PBR update, anyway. I'll file upstream. Thanks again! |
The problem still remain by the latest Pipfile
only install
|
Pipenv seems to process only the first element in a list of extras.
Given a folder with the following Pipfile (otherwise empty):
pipenv install
installs 53 packages. The packagepydruid
, which is defined in extra druid, is missing.Given this Pipfile with inverted order of extras:
pipenv install
installs 52 packages. The packagesboto
andfilechunkio
, which are defined in extra s3, are missing.Describe your environment
The text was updated successfully, but these errors were encountered: