Pipenv: Install a package from github, but the generated entry in Pipfile.lock doesn't contain github url

Created on 26 Jan 2018  Â·  7Comments  Â·  Source: pypa/pipenv

        "host-environment-markers": {
            "implementation_name": "cpython",
            "implementation_version": "0",
            "os_name": "posix",
            "platform_machine": "x86_64",
            "platform_python_implementation": "CPython",
            "platform_release": "4.4.0-104-generic",
            "platform_system": "Linux",
            "platform_version": "#127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017",
            "python_full_version": "2.7.14",
            "python_version": "2.7",
            "sys_platform": "linux2"
        }

Celery has a critical bug about timezone, which has been fixed on master but not uploaded to pypi.

So have to install celery directly from github:

$ pipenv install git+https://github.com/celery/celery.git@bd347f7565f3a72c8cfb686ea0bfe38cfa76e09b#egg=celery
# Or
$ pipenv install git+https://github.com/celery/celery.git@master#egg=celery

This results an entry in Pipfile:

celery = {git = "https://github.com/celery/celery.git", ref = "master"}

However, In Pipfile.lock the corresponding entry is like below:

        "celery": {
            "hashes": [
                "sha256:81a67f0d53a688ec2bc8557bd5d6d7218f925a6f2e6df80e01560de9e28997ec",
                "sha256:77ff3730198d6a17b3c1f05579ebe570b579efb35f6d7e13dba3b1368d068b35"
            ],
            "version": "==4.1.0"
        }

So when I do pipenv install in another setup, I will get the wrong version of celery.

See also: https://github.com/celery/celery/issues/4507

Most helpful comment

You should be using -e for sure.

All 7 comments

I was checking this Issue because I've a sort-of related problem with #egg= not being saved in my Pipfile (apparently because of dashes and underscores?) but I just tried your exact command with pipenv 9.0.3 (just donwloaded) and it gave me the correct hash:

pipenv install git+https://github.com/celery/celery.git@bd347f7565f3a72c8cfb686ea0bfe38cfa76e09b#egg=celery

"default": {
    "celery": {
        "git": "https://github.com/celery/celery.git",
        "ref": "bd347f7565f3a72c8cfb686ea0bfe38cfa76e09b"
    }
},

Did you try with 9.0.3?

@RobertoMaurizzi

Yes!

$ pipenv --version
pipenv, version 9.0.3

@wonderbeyond if you don’t install in editable mode with the current release I believe you will have issues due to some breakages. Can you try to reinstall with -e git+https and let me know if that works?

@techalchemy

$ pipenv --version    
pipenv, version 9.0.3
$ pipenv run python --version
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project.
Python 2.7.14
$ pipenv install -e git+https://github.com/celery/celery.git@bd347f7565f3a72c8cfb686ea0bfe38cfa76e09b#egg=celery
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project.
Installing -e git+https://github.com/celery/celery.git@bd347f7565f3a72c8cfb686ea0bfe38cfa76e09b#egg=celery…
Obtaining celery from git+https://github.com/celery/celery.git@bd347f7565f3a72c8cfb686ea0bfe38cfa76e09b#egg=celery
  Updating /home/wonder/.pyenv/versions/2.7.14/envs/amidala/src/celery clone (to bd347f7565f3a72c8cfb686ea0bfe38cfa76e09b)
Requirement already satisfied: pytz>dev in /home/wonder/.pyenv/versions/2.7.14/envs/amidala/lib/python2.7/site-packages (from celery)
Requirement already satisfied: billiard<3.6.0,>=3.5.0.2 in /home/wonder/.pyenv/versions/2.7.14/envs/amidala/lib/python2.7/site-packages (from celery)
Requirement already satisfied: kombu<5.0,>=4.0.2 in /home/wonder/.pyenv/versions/2.7.14/envs/amidala/lib/python2.7/site-packages (from celery)
Requirement already satisfied: amqp<3.0,>=2.1.4 in /home/wonder/.pyenv/versions/2.7.14/envs/amidala/lib/python2.7/site-packages (from kombu<5.0,>=4.0.2->celery)
Requirement already satisfied: vine>=1.1.3 in /home/wonder/.pyenv/versions/2.7.14/envs/amidala/lib/python2.7/site-packages (from amqp<3.0,>=2.1.4->kombu<5.0,>=4.0.2->celery)
Installing collected packages: celery
  Found existing installation: celery 4.2.0
    Uninstalling celery-4.2.0:
      Successfully uninstalled celery-4.2.0
  Running setup.py develop for celery
Successfully installed celery

Adding -e git+https://github.com/celery/celery.git@bd347f7565f3a72c8cfb686ea0bfe38cfa76e09b#egg=celery to Pipfile's [packages]…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (fe3eb5)!
$ grep -i celery Pipfile
celery = {ref = "bd347f7565f3a72c8cfb686ea0bfe38cfa76e09b", git = "https://github.com/celery/celery.git", editable = true}

$ grep -i -n2 celery Pipfile.lock
86-            "version": "==1.8.36"
87-        },
88:        "celery": {
89-            "editable": true,
90:            "git": "https://github.com/celery/celery.git",
91-            "ref": "bd347f7565f3a72c8cfb686ea0bfe38cfa76e09b"
92-        },

Yes, You saved me.

@wonderbeyond awesome, I'm not 100% sure the parser is intended to work with specific refs when using non-editable vcs urls, but it's a piece of functionality we may want to enable anyway just for the sake of being idempotent

I'd say something else is at play, since for me it worked without adding -e

You should be using -e for sure.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

leileigong picture leileigong  Â·  3Comments

AkiraSama picture AkiraSama  Â·  3Comments

randName picture randName  Â·  3Comments

ipmb picture ipmb  Â·  3Comments

erinxocon picture erinxocon  Â·  3Comments