Repository: pypa/pipenv

Issue:
pipenv does not install all extras
Pipenv seems to process only the first element in a list of extras.

Given a folder with the following Pipfile (otherwise empty):
```
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[dev-packages]

[packages]
apache-airflow = {extras = ["s3", "druid"], version = "==1.8.2"}

[requires]
python_version = "3.5"
```
`pipenv install` installs 53 packages. The package `pydruid`, which is defined in extra druid, is missing.

Given this Pipfile with inverted order of extras:
```
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[dev-packages]

[packages]
apache-airflow = {extras = ["druid", "s3"], version = "==1.8.2"}

[requires]
python_version = "3.5"
```

`pipenv install` installs 52 packages. The packages `boto` and `filechunkio`, which are defined in extra s3, are missing.



##### Describe your environment

1. OS Type: Mac OS 10.13.1
1. Python version: Python 2.7.10
1. Pipenv version: pipenv, version 8.3.2


Discussion:
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 `docker build -t pipenv1094 https://gist.githubusercontent.com/hoesler/66f4ab6a7d69d2cadde8bfe9a9582228/raw/301bb79912a00485c9124975af2d26ff75d14711/Dockerfile`

The last command checks for the `boto` lib in Pipfile.lock, which fails for pipenv revision 704c622369154d7421de6bac28eda466565cd3a4
I still have the issue with pipenv 10.1.0. pipenv will only install the first item of the extras list.
I see the issue is closed. Has this been fixed ?
@sdementen I just looked over your `setup.py` and I wanted to point out that your `extras_require` syntax is no longer supported by setuptools or pip and is likely one piece of the cause of your struggles. Specifying the `python_version` marker as a conditional install flag should not be handled in `extras_require` but rather in `install_requires` per the [setuptools documentation](http://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-platform-specific-dependencies)

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 `extras_require` is the problem here, but it is still mentioned in latest setuptools documentation you provided. Anyway, I think this is still a pipenv problem and I don't understand why this issue got closed.

Resolving patch:
diff --git a/pipenv/utils.py b/pipenv/utils.py
--- a/pipenv/utils.py
+++ b/pipenv/utils.py
@@ -590,7 +590,7 @@ def convert_deps_to_pip(deps, project=None, r=True, include_index=False):
 
         # Support for extras (e.g. requests[socks])
         if 'extras' in deps[dep]:
-            extra = '[{0}]'.format(deps[dep]['extras'][0])
+            extra = '[{0}]'.format(','.join(deps[dep]['extras']))
 
         if 'version' in deps[dep]:
             if not is_star(deps[dep]['version']):


Test patch: