Repository: pypa/pipenv

Issue:
pipenv update --outdated lists nothing
`pipenv update --outdated` lists nothing even though updates exist.

<details><summary>$ python -m pipenv.help output</summary>

Pipenv version: `'11.10.1'`

Pipenv location: `'/home/florian/.local/venvs/pipenv/lib/python3.5/site-packages/pipenv'`

Python location: `'/home/florian/.local/venvs/pipenv/bin/python'`

Other Python installations in `PATH`:

  - `2.5`: `/usr/local/bin/python2.5`
  - `2.5`: `/usr/local/bin/python2.5`
  - `2.7`: `/usr/bin/python2.7`
  - `2.7`: `/usr/bin/python2.7`
  - `3.5`: `/usr/bin/python3.5m`
  - `3.5`: `/usr/bin/python3.5`
  - `3.6`: `/usr/bin/python3.6m`
  - `3.6`: `/usr/bin/python3.6`

  - `2.7.15`: `/usr/bin/python`
  - `2.7.15`: `/usr/bin/python2`
  - `3.6.5`: `/usr/bin/python3`

PEP 508 Information:

```
{'implementation_name': 'cpython',
 'implementation_version': '3.5.4',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '4.15.0-3-amd64',
 'platform_system': 'Linux',
 'platform_version': '#1 SMP Debian 4.15.17-1 (2018-04-19)',
 'python_full_version': '3.5.4',
 'python_version': '3.5',
 'sys_platform': 'linux'}
```

System environment variables:

  - `XDG_VTNR`
  - `LC_MONETARY`
  - `GDMSESSION`
  - `EDITOR`
  - `XDG_SESSION_ID`
  - `VTE_VERSION`
  - `GIO_LAUNCHED_DESKTOP_FILE_PID`
  - `COLORTERM`
  - `GTK_MODULES`
  - `GIO_LAUNCHED_DESKTOP_FILE`
  - `XDG_SESSION_TYPE`
  - `LC_CTYPE`
  - `XDG_DATA_DIRS`
  - `GJS_DEBUG_OUTPUT`
  - `USER`
  - `PAGER`
  - `PROJECT_HOME`
  - `SSH_AUTH_SOCK`
  - `SHELL`
  - `LC_TIME`
  - `TERMINATOR_DBUS_PATH`
  - `XDG_SESSION_COOKIE`
  - `XDG_CURRENT_DESKTOP`
  - `XDG_SESSION_DESKTOP`
  - `LANG`
  - `WINDOWPATH`
  - `OLDPWD`
  - `XDG_SEAT`
  - `SSH_AGENT_PID`
  - `PYTHONDONTWRITEBYTECODE`
  - `_`
  - `QT_ACCESSIBILITY`
  - `DISPLAY`
  - `DBUS_SESSION_BUS_ADDRESS`
  - `TERMINATOR_UUID`
  - `GJS_DEBUG_TOPICS`
  - `LSCOLORS`
  - `PEX_INHERIT_PATH`
  - `LESS`
  - `XDG_MENU_PREFIX`
  - `LC_MEASUREMENT`
  - `S_COLORS`
  - `ZSH`
  - `ANSIBLE_NOCOWS`
  - `LC_PAPER`
  - `LS_COLORS`
  - `DESKTOP_SESSION`
  - `SESSION_MANAGER`
  - `PWD`
  - `LOGNAME`
  - `QT_SELECT`
  - `TERMINATOR_DBUS_NAME`
  - `HOME`
  - `XDG_RUNTIME_DIR`
  - `XAUTHORITY`
  - `LC_NUMERIC`
  - `ELECTRON_TRASH`
  - `GDM_LANG`
  - `SHLVL`
  - `GPG_AGENT_INFO`
  - `PIP_PYTHON_PATH`
  - `USERNAME`
  - `GNOME_DESKTOP_SESSION_ID`
  - `TERM`
  - `PATH`

Pipenv–specific environment variables:


Debug–specific environment variables:

  - `PATH`: `/home/florian/.yarn/bin:/usr/local/heroku/bin:/home/florian/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games`
  - `SHELL`: `/usr/bin/zsh`
  - `EDITOR`: `vim`
  - `LANG`: `en_US.utf8`
  - `PWD`: `/home/florian/.local/venvs/pipenv`


---------------------------

</details>


##### Expected result

I'd expect Django to be an update given the following pipfile and lock file:

```
[[source]]
name = "pypi"
verify_ssl = true
url = "https://pypi.org/simple"

[packages]
django = "*"

[dev-packages]

[requires]
python_version = "3.6"
```

```
{
    "_meta": {
        "hash": {
            "sha256": "68309cd71a258c30a39567fce09a09ad5c4ff0bdc85b6fba22b47598c985c883"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.6"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "django": {
            "hashes": [
                "sha256:0120b3b60760fb0617848b58aaa9702c0bf963320ed472f0879c5c55ab75b64a",
                "sha256:b6f3b864944276b4fd1d099952112696558f78b77b39188ac92b6c5e80152c30"
            ],
            "index": "pypi",
            "version": "==1.11"
        },
        "pytz": {
            "hashes": [
                "sha256:65ae0c8101309c45772196b21b74c46b2e5d11b6275c45d251b150d5da334555",
                "sha256:c06425302f2cf668f1bba7a0a03f3c1d34d4ebeef2c72003da308b3947c7f749"
            ],
            "version": "==2018.4"
        }
    },
    "develop": {}
}
```

##### Actual result

`pipenv update --outdated` does nothing; `pipenv run pip list -o` lists Django as outdated:
```
Package Version Latest Type 
------- ------- ------ -----
Django  1.11    2.0.4  wheel
```



Discussion:
Thanks for reporting, I am preparing a PR to fix it.

Resolving patch:
diff --git a/pipenv/core.py b/pipenv/core.py
--- a/pipenv/core.py
+++ b/pipenv/core.py
@@ -1733,10 +1733,11 @@ def do_outdated():
                 pass
     outdated = []
     for package in packages:
-        if package in updated_packages:
-            if updated_packages[package] != packages[package]:
+        norm_name = pep423_name(package)
+        if norm_name in updated_packages:
+            if updated_packages[norm_name] != packages[package]:
                 outdated.append(
-                    (package, updated_packages[package], packages[package])
+                    (package, updated_packages[norm_name], packages[package])
                 )
     for package, new_version, old_version in outdated:
         click.echo(


Test patch: