pipenv: installing packages from git broken
Fresh install:
$ pipenv --version
pipenv, version 3.3.6
Simple Pipfile:
$ cat Pipfile
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
[packages]
crayons = { git="https://github.com/kennethreitz/crayons.git", ref="v0.1.2" }
Creates what seems to me a valid lock file:
$ cat Pipfile.lock
{
"_meta": {
"hash": {
"sha256": "39b2447b7dd6976804de490321577a2db0f4fc4327e0795a93436ea69afad9a8"
},
"requires": {},
"sources": [
{
"verify_ssl": true,
"url": "https://pypi.python.org/simple"
}
]
},
"default": {
"crayons from git+https://github.com/kennethreitz/crayons.git@v0.1.2#egg=crayons": {
"hash": "sha256:a292b7ef29131345fd329ff5a94d1e2e59569be4dbd9fa8b99ff7114d72102a6",
"version": "==0.1.2"
},
"colorama": {
"hash": "sha256:a4c0f5bc358a62849653471e309dcc991223cf86abafbec17cd8f41327279e89",
"version": "==0.3.7"
}
},
"develop": {}
}
And now installing breaks:
$ pipenv install
No package provided, installing all dependencies.
Pipfile found at /[...]/Pipfile. Considering this to be the project home.
Installing dependencies from Pipfile.lock...
An error occured while installing!
Invalid requirement: 'crayons from git+https://github.com/kennethreitz/crayons.git@v0.1.2#egg=crayons==0.1.2'
It looks like a path. Does it exist ?
To activate this project's virtualenv, run the following:
$ pipenv shell
These are the versions in my env:
$ pip freeze
appdirs==1.4.0
blindspin==2.0.0
click==6.7
click-completion==0.2.1
colorama==0.3.7
crayons==0.1.2
delegator.py==0.0.8
Jinja2==2.9.5
MarkupSafe==0.23
packaging==16.8
parse==1.6.6
pew==0.1.26
pexpect==4.2.1
pipenv==3.3.6
pipfile==0.0.1
ptyprocess==0.5.1
pyparsing==2.1.10
pythonz-bd==1.11.4
requests==2.13.0
requirements-parser==0.1.0
resumable-urlretrieve==0.1.4
six==1.10.0
toml==0.9.2
virtualenv==15.1.0
virtualenv-clone==0.2.6
Leaving out the ref attribute makes no difference.
Providing the editable
flag leaves the package out of the lock file altogether:
$ cat Pipfile
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
[packages]
crayons = { git="https://github.com/kennethreitz/crayons.git", ref="v0.1.2", editable=1 }
produces:
$ cat Pipfile.lock
{
"_meta": {
"sources": [
{
"url": "https://pypi.python.org/simple",
"verify_ssl": true
}
],
"requires": {},
"hash": {
"sha256": "fa6b6a1618451ef360028928588f70f6b3964f4dc8b0d371fb71a355b334abee"
}
},
"develop": {},
"default": {}
}
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 1
- Comments: 21 (12 by maintainers)
Commits related to this issue
- doesnt work, turns out pipenv is broken (https://github.com/kennethreitz/pipenv/issues/204) — committed to Amsterdam/accountscli by deleted user 7 years ago
- pipenv trouble, reverting to req.txt for now (https://github.com/kennethreitz/pipenv/issues/204) — committed to Amsterdam/lightidp by deleted user 7 years ago
Thanks for opening this @evertlammerts, we realized last week that this was regressed in the 3.3.X releases of pipenv. I’m currently working on getting this functionality reintegrated, so bear with me while we get this tidied.
Since we hadn’t gotten around to making a formal issue for this, we’ll use this one to track this going forward.
This should be resolved with #242 and released in 3.5.0.
Installing from
git
should still work fine in the formpipenv install git+https://github.com/django/dango.git#egg=Django
. I believe this is noted farther up in the issue.The problem we’re discussing here is installing those dependencies again from the Pipfile/Pipfile.lock. There’s a pretty detailed explanation of the current state of things two comments above your original.
The only reason that
crayons
works in this case is it’s a dependency ofpipenv
itself and MUST be installed and you have chosen the same version number thatpip
will install by default. If you try another package that isn’t hosted on PyPI such as the example below, you’ll find your table syntax doesn’t work.