pipenv install -e . not working as advertised

Created on 16 Apr 2018  ·  18Comments  ·  Source: pypa/pipenv

tom@ ~/projects/navigator-8/navigator8adt (feature/inject)*$ pipenv install -e .
Installing -e .…
⠧
Error:  An error occurred while installing -e .!
Directory '.' is not installable. File 'setup.py' not found.

tom@ ~/projects/navigator-8/navigator8adt (feature/inject)*$ ls -al setup.py
-rw-r--r--  1 tom  staff  1575 Apr 16 06:55 setup.py
tom@ ~/projects/navigator-8/navigator8adt (feature/inject)*$ pipenv --version
pipenv, version 11.10.0
tom@ ~/projects/navigator-8/navigator8adt (feature/inject)*$ pip --version
pip 10.0.0 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
tom@ ~/projects/navigator-8/navigator8adt (feature/inject)*$ 

this however does work

tom@ ~/projects/navigator-8/navigator8adt (feature/inject)*$ cd ../
tom@ ~/projects/navigator-8 $ pipenv install -e navigator8adt
Installing -e navigator8adt…
Obtaining file:///Users/tom/projects/navigator-8/navigator8adt
Requirement already satisfied: navigator8 in ./navigator8 (from navigator8adt==0.1.0)
Requirement already satisfied: pyramid in ./.venv/lib/python3.6/site-packages (from navigator8adt==0.1.0)
Requirement already satisfied: marshmallow==2.15.0 in ./.venv/lib/python3.6/site-packages (from navigator8adt==0.1.0)
Requirement already satisfied: inject in ./.venv/lib/python3.6/site-packages (from navigator8adt==0.1.0)
Requirement already satisfied: sqlalchemy in ./.venv/lib/python3.6/site-packages (from navigator8->navigator8adt==0.1.0)
Requirement already satisfied: stringcase in ./.venv/lib/python3.6/site-packages (from navigator8->navigator8adt==0.1.0)
Requirement already satisfied: marshmallow_jsonapi in ./.venv/lib/python3.6/site-packages (from navigator8->navigator8adt==0.1.0)
Requirement already satisfied: inflect in ./.venv/lib/python3.6/site-packages (from navigator8->navigator8adt==0.1.0)
Requirement already satisfied: psycopg2 in ./.venv/lib/python3.6/site-packages (from navigator8->navigator8adt==0.1.0)
Requirement already satisfied: zope.sqlalchemy in ./.venv/lib/python3.6/site-packages (from navigator8->navigator8adt==0.1.0)
Requirement already satisfied: pyramid_tm in ./.venv/lib/python3.6/site-packages (from navigator8->navigator8adt==0.1.0)
Requirement already satisfied: translationstring>=0.4 in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: plaster-pastedeploy in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: plaster in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: setuptools in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: repoze.lru>=0.4 in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: WebOb>=1.7.0rc2 in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: zope.interface>=3.8.0 in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: zope.deprecation>=3.5.0 in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: hupper in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: venusian>=1.0a3 in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: PasteDeploy>=1.5.0 in ./.venv/lib/python3.6/site-packages (from pyramid->navigator8adt==0.1.0)
Requirement already satisfied: transaction>=1.6.0 in ./.venv/lib/python3.6/site-packages (from zope.sqlalchemy->navigator8->navigator8adt==0.1.0)
Installing collected packages: navigator8adt
  Found existing installation: navigator8adt 0.1.0
    Uninstalling navigator8adt-0.1.0:
      Successfully uninstalled navigator8adt-0.1.0
  Running setup.py develop for navigator8adt
Successfully installed navigator8adt

Adding -e navigator8adt to Pipfile's [packages]…
Installing dependencies from Pipfile.lock (7b77c2)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 75/75 — 00:00:16
To activate this project's virtualenv, run the following:
 $ pipenv shell
tom@ ~/projects/navigator-8 $ 

$ python -m pipenv.help output

Pipenv version: '11.10.0'

Pipenv location: '/Users/tom/projects/navigator-8/.venv/lib/python3.6/site-packages/pipenv'

Python location: '/Users/tom/projects/navigator-8/.venv/bin/python'

Other Python installations in PATH:

  • 2.6: /usr/bin/python2.6
  • 2.6: /usr/bin/python2.6
  • 2.7: /usr/local/bin/python2.7
  • 2.7: /usr/local/bin/python2.7
  • 2.7: /usr/local/bin/python2.7
  • 2.7: /usr/bin/python2.7
  • 3.6: /usr/local/bin/python3.6m
  • 3.6: /Users/tom/projects/navigator-8/.venv/bin/python3.6
  • 3.6: /usr/local/bin/python3.6
  • 3.6: /usr/local/bin/python3.6

  • 3.6.5: /Users/tom/projects/navigator-8/.venv/bin/python

  • 2.7.14: /usr/local/bin/python
  • 2.7.14: /usr/local/bin/python
  • 2.7.10: /usr/bin/python
  • 2.7.14: /usr/local/bin/python2
  • 2.7.14: /usr/local/bin/python2
  • 3.6.5: /Users/tom/projects/navigator-8/.venv/bin/python3
  • 3.6.5: /usr/local/bin/python3
  • 3.6.5: /usr/local/bin/python3

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.6.5',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '16.7.0',
 'platform_system': 'Darwin',
 'platform_version': 'Darwin Kernel Version 16.7.0: Tue Jan 30 11:27:06 PST '
                     '2018; root:xnu-3789.73.11~1/RELEASE_X86_64',
 'python_full_version': '3.6.5',
 'python_version': '3.6',
 'sys_platform': 'darwin'}

System environment variables:

  • PATH
  • MANPATH
  • SSH_AGENT_PID
  • TERM_PROGRAM
  • TERM
  • SHELL
  • NEWRELIC_AGENT_ENABLED
  • HISTSIZE
  • TMPDIR
  • Apple_PubSub_Socket_Render
  • NVM_PATH
  • TERM_PROGRAM_VERSION
  • TERM_SESSION_ID
  • USER
  • HISTFILESIZE
  • NVM_DIR
  • SSH_AUTH_SOCK
  • __CF_USER_TEXT_ENCODING
  • _
  • NVM_NODEJS_ORG_MIRROR
  • PWD
  • LANG
  • XPC_FLAGS
  • RBENV_SHELL
  • XPC_SERVICE_NAME
  • HISTCONTROL
  • GITAWAREPROMPT
  • HOME
  • SHLVL
  • LOGNAME
  • NVM_BIN
  • NVM_IOJS_ORG_MIRROR
  • DISPLAY
  • SECURITYSESSIONID
  • GIT_SUBREPO_ROOT
  • PYTHONDONTWRITEBYTECODE
  • PIP_PYTHON_PATH
  • PYTHONUNBUFFERED

Pipenv–specific environment variables:

Debug–specific environment variables:

  • PATH: /Users/tom/projects/navigator-8/.venv/bin:/usr/local/Cellar/pipenv/11.10.0/libexec/tools:/Users/tom/projects/git-subrepo/lib:/Users/tom/.nvm/versions/node/v6.9.4/bin:/Users/tom/.rbenv/shims:/Applications/Racket v6.9/bin:/Users/tom/.rbenv/bin:/Users/tom/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin:/Users/tom/local/bin:/Users/tom/.nimble/bin:/usr/local/opt/fzf/bin
  • SHELL: /bin/bash
  • LANG: en_US.UTF-8
  • PWD: /Users/tom/projects/navigator-8/navigator8adt

Contents of Pipfile ('/Users/tom/projects/navigator-8/Pipfile'):

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[packages]
ipython = "*"
cookiecutter = "*"
"deba76a" = {path = "./navigator8", editable = true}
"6d2cadc" = {path = "./navigator8auth", editable = true}
"4800837" = {path = "./navigator8adt", editable = true}
"08facac" = {path = "./navigator8factories", editable = true}
pytest = "*"
inject = "*"
"48fadc6" = {path = "./tstinject", editable = true}
pipenv = "*"

[dev-packages]

[requires]
python_version = "3.6"

Contents of Pipfile.lock ('/Users/tom/projects/navigator-8/Pipfile.lock'):

{
    "_meta": {
        "hash": {
            "sha256": "e3301b022bbd9cfa76049d30cba17c29a7d340e8d77bbe3c438888dc617b77c2"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.6"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.python.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "08facac": {
            "editable": true,
            "path": "./navigator8factories"
        },
        "4800837": {
            "editable": true,
            "path": "./navigator8adt"
        },
        "48fadc6": {
            "editable": true,
            "path": "./tstinject"
        },
        "6d2cadc": {
            "editable": true,
            "path": "./navigator8auth"
        },
        "appnope": {
            "hashes": [
                "sha256:5b26757dc6f79a3b7dc9fab95359328d5747fcb2409d331ea66d0272b90ab2a0",
                "sha256:8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71"
            ],
            "markers": "sys_platform == 'darwin'",
            "version": "==0.1.0"
        },
        "arrow": {
            "hashes": [
                "sha256:a558d3b7b6ce7ffc74206a86c147052de23d3d4ef0e17c210dd478c53575c4cd"
            ],
            "version": "==0.12.1"
        },
        "attrs": {
            "hashes": [
                "sha256:1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9",
                "sha256:a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450"
            ],
            "version": "==17.4.0"
        },
        "backcall": {
            "hashes": [
                "sha256:38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4",
                "sha256:bbbf4b1e5cd2bdb08f915895b51081c041bac22394fdfcfdfbe9f14b77c08bf2"
            ],
            "version": "==0.1.0"
        },
        "bcrypt": {
            "hashes": [
                "sha256:01477981abf74e306e8ee31629a940a5e9138de000c6b0898f7f850461c4a0a5",
                "sha256:054d6e0acaea429e6da3613fcd12d05ee29a531794d96f6ab959f29a39f33391",
                "sha256:0872eeecdf9a429c1420158500eedb323a132bc5bf3339475151c52414729e70",
                "sha256:09a3b8c258b815eadb611bad04ca15ec77d86aa9ce56070e1af0d5932f17642a",
                "sha256:0f317e4ffbdd15c3c0f8ab5fbd86aa9aabc7bea18b5cc5951b456fe39e9f738c",
                "sha256:2788c32673a2ad0062bea850ab73cffc0dba874db10d7a3682b6f2f280553f20",
                "sha256:321d4d48be25b8d77594d8324c0585c80ae91ac214f62db9098734e5e7fb280f",
                "sha256:346d6f84ff0b493dbc90c6b77136df83e81f903f0b95525ee80e5e6d5e4eef84",
                "sha256:34dd60b90b0f6de94a89e71fcd19913a30e83091c8468d0923a93a0cccbfbbff",
                "sha256:3b4c23300c4eded8895442c003ae9b14328ae69309ac5867e7530de8bdd7875d",
                "sha256:43d1960e7db14042319c46925892d5fa99b08ff21d57482e6f5328a1aca03588",
                "sha256:49e96267cd9be55a349fd74f9852eb9ae2c427cd7f6455d0f1765d7332292832",
                "sha256:67ed1a374c9155ec0840214ce804616de49c3df9c5bc66740687c1c9b1cd9e8d",
                "sha256:6efd9ca20aefbaf2e7e6817a2c6ed4a50ff6900fafdea1bcb1d0e9471743b144",
                "sha256:8569844a5d8e1fdde4d7712a05ab2e6061343ac34af6e7e3d7935b2bd1907bfd",
                "sha256:8629ea6a8a59f865add1d6a87464c3c676e60101b8d16ef404d0a031424a8491",
                "sha256:988cac675e25133d01a78f2286189c1f01974470817a33eaf4cfee573cfb72a5",
                "sha256:9a6fedda73aba1568962f7543a1f586051c54febbc74e87769bad6a4b8587c39",
                "sha256:9eced8962ce3b7124fe20fd358cf8c7470706437fa064b9874f849ad4c5866fc",
                "sha256:a005ed6163490988711ff732386b08effcbf8df62ae93dd1e5bda0714fad8afb",
                "sha256:ae35dbcb6b011af6c840893b32399252d81ff57d52c13e12422e16b5fea1d0fb",
                "sha256:b1e8491c6740f21b37cca77bc64677696a3fb9f32360794d57fa8477b7329eda",
                "sha256:c906bdb482162e9ef48eea9f8c0d967acceb5c84f2d25574c7d2a58d04861df1",
                "sha256:cb18ffdc861dbb244f14be32c47ab69604d0aca415bee53485fcea4f8e93d5ef",
                "sha256:d86da365dda59010ba0d1ac45aa78390f56bf7f992e65f70b3b081d5e5257b09",
                "sha256:e22f0997622e1ceec834fd25947dc2ee2962c2133ea693d61805bc867abaf7ea",
                "sha256:f2fe545d27a619a552396533cddf70d83cecd880a611cdfdbb87ca6aec52f66b",
                "sha256:f7fd3ed3745fe6e81e28dc3b3d76cce31525a91f32a387e1febd6b982caf8cdb",
                "sha256:f9210820ee4818d84658ed7df16a7f30c9fba7d8b139959950acef91745cc0f7"
            ],
            "version": "==3.1.4"
        },
        "binaryornot": {
            "hashes": [
                "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061",
                "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4"
            ],
            "version": "==0.4.4"
        },
        "certifi": {
            "hashes": [
                "sha256:14131608ad2fd56836d33a71ee60fa1c82bc9d2c8d98b7bdbc631fe1b3cd1296",
                "sha256:edbc3f203427eef571f79a7692bb160a2b0f7ccaa31953e99bd17e307cf63f7d"
            ],
            "version": "==2018.1.18"
        },
        "cffi": {
            "hashes": [
                "sha256:151b7eefd035c56b2b2e1eb9963c90c6302dc15fbd8c1c0a83a163ff2c7d7743",
                "sha256:1553d1e99f035ace1c0544050622b7bc963374a00c467edafac50ad7bd276aef",
                "sha256:1b0493c091a1898f1136e3f4f991a784437fac3673780ff9de3bcf46c80b6b50",
                "sha256:2ba8a45822b7aee805ab49abfe7eec16b90587f7f26df20c71dd89e45a97076f",
                "sha256:3c85641778460581c42924384f5e68076d724ceac0f267d66c757f7535069c93",
                "sha256:3eb6434197633b7748cea30bf0ba9f66727cdce45117a712b29a443943733257",
                "sha256:4c91af6e967c2015729d3e69c2e51d92f9898c330d6a851bf8f121236f3defd3",
                "sha256:770f3782b31f50b68627e22f91cb182c48c47c02eb405fd689472aa7b7aa16dc",
                "sha256:79f9b6f7c46ae1f8ded75f68cf8ad50e5729ed4d590c74840471fc2823457d04",
                "sha256:7a33145e04d44ce95bcd71e522b478d282ad0eafaf34fe1ec5bbd73e662f22b6",
                "sha256:857959354ae3a6fa3da6651b966d13b0a8bed6bbc87a0de7b38a549db1d2a359",
                "sha256:87f37fe5130574ff76c17cab61e7d2538a16f843bb7bca8ebbc4b12de3078596",
                "sha256:95d5251e4b5ca00061f9d9f3d6fe537247e145a8524ae9fd30a2f8fbce993b5b",
                "sha256:9d1d3e63a4afdc29bd76ce6aa9d58c771cd1599fbba8cf5057e7860b203710dd",
                "sha256:a36c5c154f9d42ec176e6e620cb0dd275744aa1d804786a71ac37dc3661a5e95",
                "sha256:ae5e35a2c189d397b91034642cb0eab0e346f776ec2eb44a49a459e6615d6e2e",
                "sha256:b0f7d4a3df8f06cf49f9f121bead236e328074de6449866515cea4907bbc63d6",
                "sha256:b75110fb114fa366b29a027d0c9be3709579602ae111ff61674d28c93606acca",
                "sha256:ba5e697569f84b13640c9e193170e89c13c6244c24400fc57e88724ef610cd31",
                "sha256:be2a9b390f77fd7676d80bc3cdc4f8edb940d8c198ed2d8c0be1319018c778e1",
                "sha256:d5d8555d9bfc3f02385c1c37e9f998e2011f0db4f90e250e5bc0c0a85a813085",
                "sha256:e55e22ac0a30023426564b1059b035973ec82186ddddbac867078435801c7801",
                "sha256:e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4",
                "sha256:ecbb7b01409e9b782df5ded849c178a0aa7c906cf8c5a67368047daab282b184",
                "sha256:ed01918d545a38998bfa5902c7c00e0fee90e957ce036a4000a88e3fe2264917",
                "sha256:edabd457cd23a02965166026fd9bfd196f4324fe6032e866d0f3bd0301cd486f",
                "sha256:fdf1c1dc5bafc32bc5d08b054f94d659422b05aba244d6be4ddc1c72d9aa70fb"
            ],
            "version": "==1.11.5"
        },
        "chardet": {
            "hashes": [
                "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
                "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
            ],
            "version": "==3.0.4"
        },
        "click": {
            "hashes": [
                "sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d",
                "sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b"
            ],
            "version": "==6.7"
        },
        "cookiecutter": {
            "hashes": [
                "sha256:1316a52e1c1f08db0c9efbf7d876dbc01463a74b155a0d83e722be88beda9a3e",
                "sha256:ed8f54a8fc79b6864020d773ce11539b5f08e4617f353de1f22d23226f6a0d36"
            ],
            "index": "pypi",
            "version": "==1.6.0"
        },
        "deba76a": {
            "editable": true,
            "path": "./navigator8"
        },
        "decorator": {
            "hashes": [
                "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82",
                "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c"
            ],
            "version": "==4.3.0"
        },
        "factory-boy": {
            "hashes": [
                "sha256:bd5a096d0f102d79b6c78cef1c8c0b650f2e1a3ecba351c735c6d2df8dabd29c",
                "sha256:be2abc8092294e4097935a29b4e37f5b9ed3e4205e2e32df215c0315b625995e"
            ],
            "version": "==2.10.0"
        },
        "faker": {
            "hashes": [
                "sha256:226d8fa67a8cf8b4007aab721f67639f130e9cfdc53a7095a2290ebb07a65c71",
                "sha256:48fed4b4a191e2b42ad20c14115f1c6d36d338b80192075d7573f0f42d7fb321"
            ],
            "version": "==0.8.13"
        },
        "future": {
            "hashes": [
                "sha256:e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
            ],
            "version": "==0.16.0"
        },
        "hupper": {
            "hashes": [
                "sha256:3c054723ee7461d34260e2e9d99f9ae3fb106c3de3602c05f5e2eb554054ecb9",
                "sha256:e18037fa43fb4af7c00bd262ca6f5d7bcd22debd5d71e43b0fb1437f56e78035"
            ],
            "version": "==1.1"
        },
        "idna": {
            "hashes": [
                "sha256:2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f",
                "sha256:8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4"
            ],
            "version": "==2.6"
        },
        "inflect": {
            "hashes": [
                "sha256:0e2358f4f46a54cca3d77b983fa3708b02dc83acd8d28466a67e88b72e5c1b34",
                "sha256:2014c8dcb2114ebae2941ba3f0fbd98a02c846792a7b72f2da31eb9aa431a818"
            ],
            "version": "==0.2.5"
        },
        "inject": {
            "hashes": [
                "sha256:1977d07ad617cee5c99e447f8a78cd90722c0cab7e129a9fa6b1d263fe81773f"
            ],
            "index": "pypi",
            "version": "==3.3.2"
        },
        "ipython": {
            "hashes": [
                "sha256:85882f97d75122ff8cdfe129215a408085a26039527110c8d4a2b8a5e45b7639",
                "sha256:a6ac981381b3f5f604b37a293369963485200e3639fb0404fa76092383c10c41"
            ],
            "index": "pypi",
            "version": "==6.3.1"
        },
        "ipython-genutils": {
            "hashes": [
                "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8",
                "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"
            ],
            "version": "==0.2.0"
        },
        "jedi": {
            "hashes": [
                "sha256:1972f694c6bc66a2fac8718299e2ab73011d653a6d8059790c3476d2353b99ad",
                "sha256:5861f6dc0c16e024cbb0044999f9cf8013b292c05f287df06d3d991a87a4eb89"
            ],
            "version": "==0.12.0"
        },
        "jinja2": {
            "hashes": [
                "sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd",
                "sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4"
            ],
            "version": "==2.10"
        },
        "jinja2-time": {
            "hashes": [
                "sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40",
                "sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa"
            ],
            "version": "==0.2.0"
        },
        "markupsafe": {
            "hashes": [
                "sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665"
            ],
            "version": "==1.0"
        },
        "marshmallow": {
            "hashes": [
                "sha256:8740ada95f47fa19f905772aa4932dc5512226a90c30da5672d6d6bf3dd791a7",
                "sha256:d3f31fe7be2106b1d783cbd0765ef4e1c6615505514695f33082805f929dd584"
            ],
            "version": "==2.15.0"
        },
        "marshmallow-jsonapi": {
            "hashes": [
                "sha256:a0691dbd772bd14cb011ccb557ce0e4714ed602dae4f900c64ac579052641f79"
            ],
            "version": "==0.16.0"
        },
        "memoized-property": {
            "hashes": [
                "sha256:4be4d0209944b9b9b678dae9d7e312249fe2e6fb8bdc9bdaa1da4de324f0fcf5"
            ],
            "version": "==1.0.3"
        },
        "more-itertools": {
            "hashes": [
                "sha256:0dd8f72eeab0d2c3bd489025bb2f6a1b8342f9b198f6fc37b52d15cfa4531fea",
                "sha256:11a625025954c20145b37ff6309cd54e39ca94f72f6bb9576d1195db6fa2442e",
                "sha256:c9ce7eccdcb901a2c75d326ea134e0886abfbea5f93e91cc95de9507c0816c44"
            ],
            "version": "==4.1.0"
        },
        "parso": {
            "hashes": [
                "sha256:62bd6bf7f04ab5c817704ff513ef175328676471bdef3629d4bdd46626f75551",
                "sha256:a75a304d7090d2c67bd298091c14ef9d3d560e3c53de1c239617889f61d1d307"
            ],
            "version": "==0.2.0"
        },
        "pastedeploy": {
            "hashes": [
                "sha256:39973e73f391335fac8bc8a8a95f7d34a9f42e2775600ce2dc518d93b37ef943",
                "sha256:d5858f89a255e6294e63ed46b73613c56e3b9a2d82a42f1df4d06c8421a9e3cb"
            ],
            "version": "==1.5.2"
        },
        "pexpect": {
            "hashes": [
                "sha256:9783f4644a3ef8528a6f20374eeb434431a650c797ca6d8df0d81e30fffdfa24",
                "sha256:9f8eb3277716a01faafaba553d629d3d60a1a624c7cf45daa600d2148c30020c"
            ],
            "markers": "sys_platform != 'win32'",
            "version": "==4.5.0"
        },
        "pickleshare": {
            "hashes": [
                "sha256:84a9257227dfdd6fe1b4be1319096c20eb85ff1e82c7932f36efccfe1b09737b",
                "sha256:c9a2541f25aeabc070f12f452e1f2a8eae2abd51e1cd19e8430402bdf4c1d8b5"
            ],
            "version": "==0.7.4"
        },
        "pipenv": {
            "hashes": [
                "sha256:325b26672172f11cf46ee5fa31cc4c751df24f920617ca21eeb68fce70a394e2",
                "sha256:dab6b2e5347757cda7973e6c6065c30c020c5ff8b0687306b83e962aea4adc6c"
            ],
            "index": "pypi",
            "version": "==11.10.0"
        },
        "plaster": {
            "hashes": [
                "sha256:215c921a438b5349931fd7df9a5a11a3572947f20f4bc6dd622ac08f1c3ba249",
                "sha256:8351c7c7efdf33084c1de88dd0f422cbe7342534537b553c49b857b12d98c8c3"
            ],
            "version": "==1.0"
        },
        "plaster-pastedeploy": {
            "hashes": [
                "sha256:25cc239d767c5fab0afa44b1ed3c1a33a3d7ec6302ff2e599aec674b77ff6667",
                "sha256:70a3185b2a3336996a26e9987968cf35e84cf13390b7e8a0a9a91eb8f6f85ba9"
            ],
            "version": "==0.5"
        },
        "pluggy": {
            "hashes": [
                "sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff",
                "sha256:d345c8fe681115900d6da8d048ba67c25df42973bda370783cd58826442dcd7c",
                "sha256:e160a7fcf25762bb60efc7e171d4497ff1d8d2d75a3d0df7a21b76821ecbf5c5"
            ],
            "version": "==0.6.0"
        },
        "poyo": {
            "hashes": [
                "sha256:103b4ee3e1c7765098fe1cabe43f828db2e2a6079646561a2117e1a809f352d6",
                "sha256:230ec11c2f35a23410c1f0e474f09fa4e203686f40ab3adca7b039c845d8c325"
            ],
            "version": "==0.4.1"
        },
        "prompt-toolkit": {
            "hashes": [
                "sha256:1df952620eccb399c53ebb359cc7d9a8d3a9538cb34c5a1344bdbeb29fbcc381",
                "sha256:3f473ae040ddaa52b52f97f6b4a493cfa9f5920c255a12dc56a7d34397a398a4",
                "sha256:858588f1983ca497f1cf4ffde01d978a3ea02b01c8a26a8bbc5cd2e66d816917"
            ],
            "version": "==1.0.15"
        },
        "psycopg2": {
            "hashes": [
                "sha256:027ae518d0e3b8fff41990e598bc7774c3d08a3a20e9ecc0b59fb2aaaf152f7f",
                "sha256:092a80da1b052a181b6e6c765849c9b32d46c5dac3b81bf8c9b83e697f3cdbe8",
                "sha256:0b9851e798bae024ed1a2a6377a8dab4b8a128a56ed406f572f9f06194e4b275",
                "sha256:179c52eb870110a8c1b460c86d4f696d58510ea025602cd3f81453746fccb94f",
                "sha256:19983b77ec1fc2a210092aa0333ee48811fd9fb5f194c6cd5b927ed409aea5f8",
                "sha256:1d90379d01d0dc50ae9b40c863933d87ff82d51dd7d52cea5d1cb7019afd72cd",
                "sha256:27467fd5af1dcc0a82d72927113b8f92da8f44b2efbdb8906bd76face95b596d",
                "sha256:32702e3bd8bfe12b36226ba9846ed9e22336fc4bd710039d594b36bd432ae255",
                "sha256:33f9e1032095e1436fa9ec424abcbd4c170da934fb70e391c5d78275d0307c75",
                "sha256:36030ca7f4b4519ee4f52a74edc4ec73c75abfb6ea1d80ac7480953d1c0aa3c3",
                "sha256:363fbbf4189722fc46779be1fad2597e2c40b3f577dc618f353a46391cf5d235",
                "sha256:6f302c486132f8dd11f143e919e236ea4467d53bf18c451cac577e6988ecbd05",
                "sha256:733166464598c239323142c071fa4c9b91c14359176e5ae7e202db6bcc1d2eb5",
                "sha256:7cbc3b21ce2f681ca9ad2d8c0901090b23a30c955e980ebf1006d41f37068a95",
                "sha256:888bba7841116e529f407f15c6d28fe3ef0760df8c45257442ec2f14f161c871",
                "sha256:8966829cb0d21a08a3c5ac971a2eb67c3927ae27c247300a8476554cc0ce2ae8",
                "sha256:8bf51191d60f6987482ef0cfe8511bbf4877a5aa7f313d7b488b53189cf26209",
                "sha256:8eb94c0625c529215b53c08fb4e461546e2f3fc96a49c13d5474b5ad7aeab6cf",
                "sha256:8ebba5314c609a05c6955e5773c7e0e57b8dd817e4f751f30de729be58fa5e78",
                "sha256:932a4c101af007cb3132b1f8a9ffef23386acc53dad46536dc5ba43a3235ae02",
                "sha256:ad75fe10bea19ad2188c5cb5fc4cdf53ee808d9b44578c94a3cd1e9fc2beb656",
                "sha256:aeaba399254ca79c299d9fe6aa811d3c3eac61458dee10270de7f4e71c624998",
                "sha256:b178e0923c93393e16646155794521e063ec17b7cc9f943f15b7d4b39776ea2c",
                "sha256:b68e89bb086a9476fa85298caab43f92d0a6af135a5f433d1f6b6d82cafa7b55",
                "sha256:d74cf9234ba76426add5e123449be08993a9b13ff434c6efa3a07caa305a619f",
                "sha256:f3d3a88128f0c219bdc5b2d9ccd496517199660cea021c560a3252116df91cbd",
                "sha256:fe6a7f87356116f5ea840c65b032af17deef0e1a5c34013a2962dd6f99b860dd"
            ],
            "version": "==2.7.4"
        },
        "ptyprocess": {
            "hashes": [
                "sha256:e64193f0047ad603b71f202332ab5527c5e52aa7c8b609704fc28c0dc20c4365",
                "sha256:e8c43b5eee76b2083a9badde89fd1bbce6c8942d1045146e100b7b5e014f4f1a"
            ],
            "version": "==0.5.2"
        },
        "py": {
            "hashes": [
                "sha256:29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881",
                "sha256:983f77f3331356039fdd792e9220b7b8ee1aa6bd2b25f567a963ff1de5a64f6a"
            ],
            "version": "==1.5.3"
        },
        "pycparser": {
            "hashes": [
                "sha256:99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226"
            ],
            "version": "==2.18"
        },
        "pygments": {
            "hashes": [
                "sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d",
                "sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc"
            ],
            "version": "==2.2.0"
        },
        "pyjwt": {
            "hashes": [
                "sha256:bca523ef95586d3a8a5be2da766fe6f82754acba27689c984e28e77a12174593",
                "sha256:dacba5786fe3bf1a0ae8673874e29f9ac497860955c501289c63b15d3daae63a"
            ],
            "version": "==1.6.1"
        },
        "pyramid": {
            "hashes": [
                "sha256:7da99f42fbc31cb36ae5297091734cab4e27d222da806dd370f3466ea8c6c422",
                "sha256:840f4bbd5994609340de35079da0d1dd94f79942e27818d5d8566f8009fb0b36"
            ],
            "version": "==1.9.1"
        },
        "pyramid-tm": {
            "hashes": [
                "sha256:07d03bab7bdd265c3920db4e68dbaa8cbaff27da828700f404b1424244ad617f",
                "sha256:11b0f31482339d655358081bc1366d39679d02588782b5c8019bfb41ae02ba3d"
            ],
            "version": "==2.2"
        },
        "pytest": {
            "hashes": [
                "sha256:6266f87ab64692112e5477eba395cfedda53b1933ccd29478e671e73b420c19c",
                "sha256:fae491d1874f199537fd5872b5e1f0e74a009b979df9d53d1553fd03da1703e1"
            ],
            "index": "pypi",
            "version": "==3.5.0"
        },
        "python-dateutil": {
            "hashes": [
                "sha256:3220490fb9741e2342e1cf29a503394fdac874bc39568288717ee67047ff29df",
                "sha256:9d8074be4c993fbe4947878ce593052f71dac82932a677d49194d8ce9778002e"
            ],
            "version": "==2.7.2"
        },
        "pytz": {
            "hashes": [
                "sha256:65ae0c8101309c45772196b21b74c46b2e5d11b6275c45d251b150d5da334555",
                "sha256:c06425302f2cf668f1bba7a0a03f3c1d34d4ebeef2c72003da308b3947c7f749"
            ],
            "version": "==2018.4"
        },
        "repoze.lru": {
            "hashes": [
                "sha256:0429a75e19380e4ed50c0694e26ac8819b4ea7851ee1fc7583c8572db80aff77",
                "sha256:f77bf0e1096ea445beadd35f3479c5cff2aa1efe604a133e67150bc8630a62ea"
            ],
            "version": "==0.7"
        },
        "requests": {
            "hashes": [
                "sha256:6a1b267aa90cac58ac3a765d067950e7dbbf75b1da07e895d1f594193a40a38b",
                "sha256:9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e"
            ],
            "version": "==2.18.4"
        },
        "simplegeneric": {
            "hashes": [
                "sha256:dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173"
            ],
            "version": "==0.8.1"
        },
        "six": {
            "hashes": [
                "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
                "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
            ],
            "version": "==1.11.0"
        },
        "sqlalchemy": {
            "hashes": [
                "sha256:7cb00cc9b9f92ef8b4391c8a2051f81eeafefe32d63c6b395fd51401e9a39edb"
            ],
            "version": "==1.2.6"
        },
        "stringcase": {
            "hashes": [
                "sha256:48a06980661908efe8d9d34eab2b6c13aefa2163b3ced26972902e3bdfd87008"
            ],
            "version": "==1.2.0"
        },
        "text-unidecode": {
            "hashes": [
                "sha256:5a1375bb2ba7968740508ae38d92e1f889a0832913cb1c447d5e2046061a396d",
                "sha256:801e38bd550b943563660a91de8d4b6fa5df60a542be9093f7abf819f86050cc"
            ],
            "version": "==1.2"
        },
        "traitlets": {
            "hashes": [
                "sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835",
                "sha256:c6cb5e6f57c5a9bdaa40fa71ce7b4af30298fbab9ece9815b5d995ab6217c7d9"
            ],
            "version": "==4.3.2"
        },
        "transaction": {
            "hashes": [
                "sha256:269601a3493cd3eddeb869419ceadfc5e6d2bc931e9970d11fc4649dab189c3c",
                "sha256:9de0f93f833713270fbceaf6092194313c1de0afb660e66dea8e089855eb281c",
                "sha256:f2242070e437e5d555ea3df809cb517860513254c828f33847df1c5e4b776c7a"
            ],
            "version": "==2.2.1"
        },
        "translationstring": {
            "hashes": [
                "sha256:4ee44cfa58c52ade8910ea0ebc3d2d84bdcad9fa0422405b1801ec9b9a65b72d",
                "sha256:e26c7bf383413234ed442e0980a2ebe192b95e3745288a8fd2805156d27515b4"
            ],
            "version": "==1.3"
        },
        "urllib3": {
            "hashes": [
                "sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b",
                "sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"
            ],
            "version": "==1.22"
        },
        "venusian": {
            "hashes": [
                "sha256:757162c5f907e18571b6ab41b7673e5bf18cc8715abf8164292eaef4f1610668",
                "sha256:9902e492c71a89a241a18b2f9950bea7e41d025cc8f3af1ea8d8201346f8577d"
            ],
            "version": "==1.1.0"
        },
        "virtualenv": {
            "hashes": [
                "sha256:1d7e241b431e7afce47e77f8843a276f652699d1fa4f93b9d8ce0076fd7b0b54",
                "sha256:e8e05d4714a1c51a2f5921e62f547fcb0f713ebbe959e0a7f585cc8bef71d11f"
            ],
            "version": "==15.2.0"
        },
        "virtualenv-clone": {
            "hashes": [
                "sha256:4507071d81013fd03ea9930ec26bc8648b997927a11fa80e8ee81198b57e0ac7",
                "sha256:b5cfe535d14dc68dfc1d1bb4ac1209ea28235b91156e2bba8e250d291c3fb4f8"
            ],
            "version": "==0.3.0"
        },
        "wcwidth": {
            "hashes": [
                "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e",
                "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c"
            ],
            "version": "==0.1.7"
        },
        "webob": {
            "hashes": [
                "sha256:1771899117c8851153f6f91e8b8a86236972aa8a1b6bd69ad0a36a9879ea2cd7",
                "sha256:54f35073d2fdcddd7a98c2a1dedeede49739150737164a787220f30283139ba6"
            ],
            "version": "==1.8.1"
        },
        "whichcraft": {
            "hashes": [
                "sha256:9e0d51c9387cb7e9f28b7edb549e6a03da758f7784f991eb4397d7f7808c57fd",
                "sha256:cd0e10b58960ab877d9f273cd28788730936c3cdaceec2dafad97c7cf3067d46"
            ],
            "version": "==0.4.1"
        },
        "zope.deprecation": {
            "hashes": [
                "sha256:7d52e134bbaaa0d72e1e2bc90f0587f1adc116c4bdf15912afaf2f1e8856b224",
                "sha256:c83cfef3085d10dcb07de5a59a2d95713865befa46e0e88784c5648610fba789"
            ],
            "version": "==4.3.0"
        },
        "zope.interface": {
            "hashes": [
                "sha256:11b068fc9916556f3820f38c2376c28d8e55e4a2c51c34915aaac38b75706d2e",
                "sha256:16fe824b3d93ee0629aa1f04848a1b515d6b5dc9e98cc7a04feaa35fdb0de5f1",
                "sha256:1d954d557b63124a65f2247ac6ed66fa36df18d1e8538d08c9b432e808a634de",
                "sha256:3d033abd27cd54157cf42a3bfd4d8c28d7fc5c6f775df3332307d2632a79925b",
                "sha256:4be05f79e952793f31a0c2d6a0672c81a3300315da587ce6a590357595217005",
                "sha256:4cb1c56b0356da9a33249ef77a688c47107f54191c12a0055d284b6bee7f447e",
                "sha256:5a8cc535f4212b134e66a3e1c6b93b19d453dbad0e2f89d0df2c01deefc8cad9",
                "sha256:5d8813e438ab67a793b09e1223742b757dd95a4a64d466855a53cb113cc9c9c4",
                "sha256:78321a6c0c8cc6ac928e44ef04d50384bc864a7f5e3c25b84110da2ede83739f",
                "sha256:88e3d54e88a601f45d03e2a062d5d16852d20e0863a92c19260ae72e2586378a",
                "sha256:8dfdc1588db31895f81bcba6c36dc981b4cf4a526c62eae3745bbfbe102477ef",
                "sha256:9902d5fc11309e17cdce6574243dc114b9c30de5c60ab53c90f6e3e962688565",
                "sha256:a16a3e07511fb6806bb48c8c661d38cdb91cd4bc6c2b6b0b173e72362ec1ceb4",
                "sha256:a21d69de2ee89fc59de93e7a43c0379ecedb5149739ff94e910c2bf0ca18e181",
                "sha256:a6375035a4b45d199a8b990e3a2f6b71906c318c56dfc14b2d58350b6ca59392",
                "sha256:aef398a5b92e70b8152d2c4850bad0fe185adb50d948f32d0bba5694d82b67c7",
                "sha256:b8f3491c9df4f0ffed32b275033e74041f420e5dcdefa4b1500d753c64ef42cf",
                "sha256:bd626cd76b7e5cbecac9d3e0dd8f98e3eada15ead95713238a523f877327633d",
                "sha256:d6d26d5dfbfd60c65152938fcb82f949e8dada37c041f72916fef6621ba5c5ce",
                "sha256:dec19181cf6af58ccb8ba3fa3ca9d4ec555b2f3cb31f589f6e86d15df0926c31",
                "sha256:f47d4138405eb67e5f059b9ab74e0a1147adc3277f5fe37d5bae5209b67e89e7",
                "sha256:f6868378fffbb8651f1f8a767d17e42aed39926c8f6bb9c56f184022fe6c2090",
                "sha256:ff20038fbc0e7ea050a7e28fcb8ae6ed8378a8d08ac70b848ea39960dda86bbf"
            ],
            "version": "==4.4.3"
        },
        "zope.sqlalchemy": {
            "hashes": [
                "sha256:9316a1a8bb9e4f9f59332acf1ad2cc8b664f19a4bde5f68be7f61f3e11f80514"
            ],
            "version": "==1.0"
        }
    },
    "develop": {}
}


Most helpful comment

Maybe we can at least provide more meaningful messages by resolving the relative path before passing it to pip?

As of now (version 2018.11.26), I think that the error message is still quite unhelpful. For me, it gives:

pipenv.vendor.requirementslib.exceptions.RequirementError: Error parsing requirement . -- are you sure it is installable?

Which, given that the setup.py is right there in front of me, is confusing. pip install -e . does install the package as does cd .. && pipenv install -e dirname/.

All 18 comments

Thanks for the report, you filed at exactly the same time as #1999 so closing for that one

Hm this might be a bug in 11.10.0, but I can't replicate it from master. Can you pip install -e git+https://github.com/pypa/pipenv.git#egg=pipenv and try again and let me know?

yeah just tried it same result...

tom@ ~/projects/navigator-8/navigator8 (master)*$ pipenv install -e .
Installing -e .…
⠧
Error:  An error occurred while installing -e .!
Directory '.' is not installable. File 'setup.py' not found.

tom@ ~/projects/navigator-8/navigator8 (master)*$ python3 
Python 3.6.5 (default, Mar 30 2018, 06:42:10) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pipenv
>>> pipenv.__file__
'/Users/tom/projects/navigator-8/src/pipenv/pipenv/__init__.py'
>>> 
tom@ ~/projects/navigator-8/navigator8 (master)*$ 

i'm not surprised you can't replicate it. I can't even comprehend how all the python stuff is setup on osx between the system/homebrew python2 and python3 etc....

i'll try this on a linux system when I get home.

@twillis if you try python3 -m pipenv install -e . do you get a different result? You may have conflicting pipenv versions, and because you were in a virtualenv the first time invoking it as an executable did something bad or something... I would be willing to bet this is osx related as you say and I _think_ using python3 -m will make it go away. If so you may need to find the other pipenv install and uninstall it / reinstall with python 3 if possible

well, i do get something different :)

tom@ ~/projects/navigator-8/navigator8 (master)*$ python3 -m pipenv install -e
Traceback (most recent call last):
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/Users/tom/projects/navigator-8/src/pipenv/pipenv/__main__.py", line 4, in <module>
    cli()
  File "/Users/tom/projects/navigator-8/src/pipenv/pipenv/vendor/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/Users/tom/projects/navigator-8/src/pipenv/pipenv/vendor/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/Users/tom/projects/navigator-8/src/pipenv/pipenv/vendor/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/tom/projects/navigator-8/src/pipenv/pipenv/vendor/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/tom/projects/navigator-8/src/pipenv/pipenv/vendor/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/Users/tom/projects/navigator-8/src/pipenv/pipenv/cli.py", line 366, in install
    selective_upgrade=selective_upgrade,
  File "/Users/tom/projects/navigator-8/src/pipenv/pipenv/core.py", line 1844, in do_install
    package_name = ' '.join([package_name, more_packages.pop(0)])
IndexError: pop from empty list
tom@ ~/projects/navigator-8/navigator8 (master)*$ 

edit... sorry realized I forgot the .

tom@ ~/projects/navigator-8/navigator8 (master)*$ python3 -m pipenv install -e .
Installing -e .…
⠧
Error:  An error occurred while installing -e .!
Directory '.' is not installable. File 'setup.py' not found.

tom@ ~/projects/navigator-8/navigator8 (master)*$ 

i'll poke around for another pipenv. I should note that I am using the option where pipenv puts .venv in the directory for my projects. And I suppose what else might be different is that I'm working on several packages in one environment.

_edit_ nevermind that's super weird. @uranusjr might know more about the .venv bit

The pop from empty list error probably needs a fix as well. Don’t want to fail with an exception, but a click error message instead.

Regarding the latter error, what is in your current directory (~/projects/navigator-8/navigator8)? (Also we probably need to make the error message better… Directory . is not installable. is so unhelpful.)

It’d be wonderful if there is a reproducible repo that we can clone and test what is wrong exactly.

ok short of a repo, here's the steps I just did to get the error on my linux box

twillis@twillis-music:~$ mkdir tstenv
twillis@twillis-music:~$ cd tstenv
twillis@twillis-music:~/tstenv$ PIPENV_VENV_IN_PROJECT=1 pipenv install --python 3.6
Creating a virtualenv for this project…
Using /usr/bin/python3.6m (3.6.3) to create virtualenv…
⠋Running virtualenv with interpreter /usr/bin/python3.6m
Using base prefix '/usr'
New python executable in /home/twillis/tstenv/.venv/bin/python3.6m
Also creating executable in /home/twillis/tstenv/.venv/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /home/twillis/tstenv/.venv
Creating a Pipfile for this project…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (625834)!
Installing dependencies from Pipfile.lock (625834)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run the following:
 $ pipenv shell
twillis@twillis-music:~/tstenv$ git clone https://github.com/Pylons/pyramid.git
Cloning into 'pyramid'...
remote: Counting objects: 70352, done.
remote: Total 70352 (delta 0), reused 0 (delta 0), pack-reused 70352
Receiving objects: 100% (70352/70352), 21.28 MiB | 3.59 MiB/s, done.
Resolving deltas: 100% (52805/52805), done.
Checking connectivity... done.
twillis@twillis-music:~/tstenv$ cd pyramid
twillis@twillis-music:~/tstenv/pyramid$ pipenv install -e .
Installing -e .…
⠧
Error:  An error occurred while installing -e .!
Directory '.' is not installable. File 'setup.py' not found.

twillis@twillis-music:~/tstenv/pyramid$ 

right. I see the problem here. Your workflow isn't quite in line with how pipenv is designed, sorry for the confusion if this was unintuitive. There are a few things going on:

  1. We don't really intend for people to create an environment as a separate step, with no packages, and then activate the shell, step into it, and start cloning packages to install. This is part of what we would consider an old workflow that requires you to be constantly thinking about whether you have activated a virtualenv before you can install packages, and it's something we want to discourage. Pipenv first and foremost is a dependency manager. Running it by itself without any dependencies to install is possible, but doesn't make a lot of sense.

  2. Specifically paths in a pipenv project are relative to _the project itself_. So when you pipenv install -e . you are installing _the project root_, not the directory you cd into. There are a lot of pragmatic and technical reasons for this, but mostly because if your project is not itself a package, it expects you to give it paths to packages or else the resulting Pipfile will be unusable. Imagine that every time you install a thing, it goes into your pipfile to be reproduced later -- if we just put -e . in your pipfile every time you try this it wouldn't make sense given that a project is the basis of all pipenv operations and as such all paths are translated relative to the project root.

The workflow you'd want for something like the example you gave could be one of two things depending on your needs:

$ git clone https://github.com/Pylons/pyramid.git
$ pipenv install -e ./pyramid/

Which would create a pipfile that looks like this:

...
[packages]
"hash" = {path = "./pyramid/", editable = true}
...

or you could just do the following:

```console:
$ pipenv install -e git+https://github.com/Pylons/pyramid.git#egg=pyramid

and that would create a pipfile like this:

```ini
...
[packages]
"pyramid" = {git = "https://github.com/Pylons/pyramid.git", editable = true}
...

And in the second case it wouldn't be in a local directory but would still install from VCS

Hey thanks for the thorough explanation.

My reason for reporting this initially is that the error message

Directory '.' is not installable. File 'setup.py' not found.

that's clearly not the case. so maybe there's a better error message possibility for this.

from your explanation above, i'm wondering if there's certain subcommands that only work from the directory where the Pipfile is? It seems install is one, are there others?

Install will work anywhere unless you try to install a relative path and don’t make it relative to the project root. The example you gave did exactly that.

Maybe we can at least provide more meaningful messages by resolving the relative path before passing it to pip? Setuptools can then emit something like

Directory '/home/twillis/tstenv' is not installable. File 'setup.py' not found.

The path in Pipfile would still be relative.

@uranusjr exactly, telling me my setup.py does not exist when i'm looking right at the thing was misleading and the very reason I reported it as a bug. I'm assuming other humans would be just as surprised.

Hm yeah valid points. One thing: we do resolve the path before we pass it to pip. If we didn’t, the command would work fine.

Maybe we can at least provide more meaningful messages by resolving the relative path before passing it to pip?

As of now (version 2018.11.26), I think that the error message is still quite unhelpful. For me, it gives:

pipenv.vendor.requirementslib.exceptions.RequirementError: Error parsing requirement . -- are you sure it is installable?

Which, given that the setup.py is right there in front of me, is confusing. pip install -e . does install the package as does cd .. && pipenv install -e dirname/.

In my case the problem was with my setup.cfg which had an space on the metadata.name value:

wrong:

[metadata]
name = name1 name2

valid:

[metadata]
name = name1-name2

As of now (version 2018.11.26), I think that the error message is still quite unhelpful. For me, it gives:

pipenv.vendor.requirementslib.exceptions.RequirementError: Error parsing requirement . -- are you sure it is installable?

Which, given that the setup.py is right there in front of me, is confusing. pip install -e . does install the package as does cd .. && pipenv install -e dirname/.

I get the same obscure message and I can't install the package even with cd .. && pipenv install -e dirname/. I have to do

pipenv shell
pip install -e .

I have
Python 2.7.15+ (plus??? Ok...)
pipenv, version 2018.11.26
pip 19.2.1
setuptools 41.0.1

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AkiraSama picture AkiraSama  ·  3Comments

jacek-jablonski picture jacek-jablonski  ·  3Comments

jacebrowning picture jacebrowning  ·  3Comments

ipmb picture ipmb  ·  3Comments

jerzyk picture jerzyk  ·  3Comments