Pipenv: 'pipenv install' is not updating packages and Pipfile.lock

Created on 29 May 2019  Β·  5Comments  Β·  Source: pypa/pipenv

Issue description

When running pipenv install <package>, Pipenv is installing the new package and updating all other packages whose version is not locked in the Pipfile. However, when only running pipenv install, e.g. after cloning a folder, Pipenv is just installing the packages as specified in Pipenv.lock - it is basically behaving like pipenv sync.
This is the first issue I'm filing, I hope I'm doing it correct so far :)

Expected result

Considering the Docs...

When no parameters are passed to install, all packages [packages] specified will be installed.
https://docs.pipenv.org/en/latest/

...as well as this Post...

pipenv install (without other arguments) is essentially lock + sync, so it is more like installing from Pipfile instead.
https://github.com/pypa/pipenv/issues/954#issuecomment-405224696

..., I would expect pipenv install to always install the latest package version "allowed" by Pipfile.

However, if it would behave like that, I don't really see the difference to pipenv update. But that's another topic.

Actual result

pipenv install does install the package version specified in Pipfile.lock.

$ pipenv install -v

Creating a virtualenv for this project…
Pipfile: /Users/valentinmorlock/Documents/Projekte/hallo3/Pipfile
Using /usr/local/bin/python (3.7.3) to create virtualenv…
β ¦ Creating virtual environment...Already using interpreter /usr/local/bin/python
Using base prefix '/usr/local'
New python executable in /root/.local/share/virtualenvs/hallo3-SxOrwuLM/bin/python
Installing setuptools, pip, wheel...
done.

βœ” Successfully created virtual environment! 
Virtualenv location: /root/.local/share/virtualenvs/hallo3-SxOrwuLM
Installing dependencies from Pipfile.lock (03d155)…
Installing 'certifi'β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰ 0/1 β€” 00:00:00
$ ['/root/.local/share/virtualenvs/hallo3-SxOrwuLM/bin/pip', 'install', '--verbose', '--upgrade', '--no-deps', '-r', '/tmp/pipenv-14cspaj5-requirements/pipenv-aimfcxv8-requirement.txt', '-i', 'https://pypi.org/simple', '--require-hashes']
Created temporary directory: /tmp/pip-ephem-wheel-cache-h4yxvfta
Created temporary directory: /tmp/pip-req-tracker-ve0qux8y
Created requirements tracker '/tmp/pip-req-tracker-ve0qux8y'
Created temporary directory: /tmp/pip-install-f9nnrl0v
Collecting certifi==2015.9.6.1 (from -r /tmp/pipenv-14cspaj5-requirements/pipenv-aimfcxv8-requirement.txt (line 1))
  1 location(s) to search for versions of certifi:
  * https://pypi.org/simple/certifi/
  Getting page https://pypi.org/simple/certifi/
  Looking up "https://pypi.org/simple/certifi/" in the cache
  Request header has "max_age" as 0, cache bypassed
  Starting new HTTPS connection (1): pypi.org:443
  https://pypi.org:443 "GET /simple/certifi/ HTTP/1.1" 304 0
  Analyzing links from page https://pypi.org/simple/certifi/
    Found link https://files.pythonhosted.org/packages/55/bf/e1094f052b5932a452b12ac5a6c229f3d7dbf41a66cfc8d5832fe3fb6463/certifi-0.0.1.tar.gz#sha256=a6f0d79b2b63a43c71bc128929be3a17bdf5d0a5f74208d7ad9563b3bf8210e9 (from https://pypi.org/simple/certifi/), version: 0.0.1
    Found link https://files.pythonhosted.org/packages/0c/4d/6e036d6158e533499272f7b82d0ffa115ecc7c930994475b7bf8f4047489/certifi-0.0.2.tar.gz#sha256=678b7a44338228d55bc4569a575b4734bbbcb9da109328f3b10e3435ec6abdee (from https://pypi.org/simple/certifi/), version: 0.0.2
    Found link https://files.pythonhosted.org/packages/17/3d/7d037b5aadde37d95c067e5b26f064ae53f791201a89b5b38ee315409264/certifi-0.0.3.tar.gz#sha256=1418bce4a32cd409b9766a7c92556be4d23f287da581945be4076eea299fbeac (from https://pypi.org/simple/certifi/), version: 0.0.3
    Found link https://files.pythonhosted.org/packages/cd/b9/ad866737dfde6b459fa3188b13d249e50101fa06bab408e6d9e5029b6838/certifi-0.0.4.tar.gz#sha256=8aed314d0d133c70fd9c56ee13cabe0910c0f6ff423da266841512af0e3d68c4 (from https://pypi.org/simple/certifi/), version: 0.0.4
    Found link https://files.pythonhosted.org/packages/84/b9/a5aac1c71b154f18dad87b39e42a118a538ce4f95fe10f3f651b0c3d0ac2/certifi-0.0.5.tar.gz#sha256=c1c47a7545e39e19357d51c2e5291de158508024658d6860815359566ac65c02 (from https://pypi.org/simple/certifi/), version: 0.0.5
    Found link https://files.pythonhosted.org/packages/76/4a/92995898df84d15c42d49e38b814caa94502cbf28be9b9732703303f2107/certifi-0.0.6.tar.gz#sha256=e839718ce80daa9853b1f47a333757d4a22cdf422e2fd8de5e579d5634a89585 (from https://pypi.org/simple/certifi/), version: 0.0.6
    Found link https://files.pythonhosted.org/packages/43/10/aafebf9677ccec8b227f15eef20a4aac65fbff7f14fc9462f06855fecdd2/certifi-0.0.7.tar.gz#sha256=6dec7d3c6f3d4ed0a50fb15f8fd41c0bb1b17998eb8c103d0f34d61c19061e36 (from https://pypi.org/simple/certifi/), version: 0.0.7
    Found link https://files.pythonhosted.org/packages/38/70/d777da670969367780cb0cb66f43799e17e050dcdeb0fa4e26189519f9f2/certifi-0.0.8.tar.gz#sha256=46ecf5f7526a08cc1f8bc8232adf0cffce046f46ceff95539daec42ebc4849ef (from https://pypi.org/simple/certifi/), version: 0.0.8
    Found link https://files.pythonhosted.org/packages/eb/fe/3ba38b686003664a75c01c42c6f1be02f9837d007c0f15727e6f8f2040a3/certifi-1.0.0.tar.gz#sha256=d4f8e89c9e709f67221bf21231d0fa66a00d3712bcb69d4b5aef3705339c8dcd (from https://pypi.org/simple/certifi/), version: 1.0.0
    Found link https://files.pythonhosted.org/packages/4e/58/86422944e1f228a4e90c291388bf69675826c995f163b2894541365f1f0e/certifi-1.0.1-py2.py3-none-any.whl#sha256=44964ac783fca598e723da5fa2ef3631b5b2f94f445749bfc6043d4afb20de75 (from https://pypi.org/simple/certifi/), version: 1.0.1
    Found link https://files.pythonhosted.org/packages/ff/3a/ec07518540a090d463aa20c615a170d52a3633057fde480bd462883a0de2/certifi-1.0.1.tar.gz#sha256=f2c18c7edd349ec10378ef43ff16f81ae1d0af61d5d2858a8b383e8f6814a9cc (from https://pypi.org/simple/certifi/), version: 1.0.1
    Found link https://files.pythonhosted.org/packages/c1/ed/4a424a55f77679700452972e583393b64160583c80ffa893b4be9391f3ae/certifi-14.05.14.tar.gz#sha256=1e1bcbacd6357c151ae37cf0290dcc809721d32ce21fd6b7339568f3ddef1b69 (from https://pypi.org/simple/certifi/), version: 14.05.14
    Found link https://files.pythonhosted.org/packages/86/35/9758a67004a266047c779ae40a3d937869bfc6fc3422f6c606b8afbc9d23/certifi-2015.04.28-py2.py3-none-any.whl#sha256=268fa00c27de756d71663dd61f73a4a8d8727569bb1b474b2ce6020553826872 (from https://pypi.org/simple/certifi/), version: 2015.04.28
    Found link https://files.pythonhosted.org/packages/4a/41/52617061e93551d5c8041b70d35db395ad647cc356beb764cd9b278e3114/certifi-2015.04.28.tar.gz#sha256=99785e6cf715cdcde59dee05a676e99f04835a71e7ced201ca317401c322ba96 (from https://pypi.org/simple/certifi/), version: 2015.04.28
    Found link https://files.pythonhosted.org/packages/c6/aa/85432217f85f1553dc0926a3e00b48e00819b80097dd056e482c19766f11/certifi-2015.9.6-py2.py3-none-any.whl#sha256=499d154e26c642108248be45b4e09d3b978d2e7c6a72e0a147a2e81448a61a7d (from https://pypi.org/simple/certifi/), version: 2015.9.6
    Found link https://files.pythonhosted.org/packages/e2/ec/ab8442e4d6cf92ea4df67ed81e078bd6a9e092c96ffcd03dbd910e1eb389/certifi-2015.9.6.tar.gz#sha256=7e5646f75d2779719b3400c009e3461f921823e4592657f8e00fb2b6e14b8b92 (from https://pypi.org/simple/certifi/), version: 2015.9.6
    Found link https://files.pythonhosted.org/packages/cc/7f/fb45b6c47ff3a1e119b8fa0aec4a9d1812f0c9f774d877eca582065ef21e/certifi-2015.9.6.1-py2.py3-none-any.whl#sha256=4cbb1f8b30948895f36bb94402598506808833747e0a2e1ca5b1f152ff341da4 (from https://pypi.org/simple/certifi/), version: 2015.9.6.1
    Found link https://files.pythonhosted.org/packages/d6/8d/700b62e1cbcd0264450b8bb476757808ef2c3f6060ee552c3717d010b616/certifi-2015.9.6.1.tar.gz#sha256=f924457bd89178e565fe1b90359d90639f524e7da1a99988292474f52defbf34 (from https://pypi.org/simple/certifi/), version: 2015.9.6.1
    Found link https://files.pythonhosted.org/packages/58/41/b16d4787c30bfb27d608fd2383ab2a7823afa0491fa16df04336d7b7519b/certifi-2015.9.6.2-py2.py3-none-any.whl#sha256=7486e08ffd0a9bea8c66e76fd1f0f0150294c572e78cb16b14d8589beafd3564 (from https://pypi.org/simple/certifi/), version: 2015.9.6.2
    Found link https://files.pythonhosted.org/packages/63/71/422814652028afbff99347da9f3d102f53113a1d2389e255a2dde15c5d8d/certifi-2015.9.6.2.tar.gz#sha256=dc3a2b2d9d1033dbf27586366ae61b9d7c44d8c3a6f29694ffcbb0618ea7aea6 (from https://pypi.org/simple/certifi/), version: 2015.9.6.2
    Found link https://files.pythonhosted.org/packages/a5/2b/83904abc08c3d95808d098163b049e923cbf9fa04f6fa5c0f3750959da8e/certifi-2015.11.20-py2.py3-none-any.whl#sha256=12e141bb3e0f1b3ea4d5a8af804fc59ff94d5ece040cf8d22232ddf87eec096b (from https://pypi.org/simple/certifi/), version: 2015.11.20
    Found link https://files.pythonhosted.org/packages/c5/8a/d007319d95bd2424adb3f2a41ffb29de76f2c07b3dd5fd98f3651f9a14f5/certifi-2015.11.20.tar.gz#sha256=7168668372f07219439e82878b484d6216ff63224fd4e7ff4f39c56ad0b487de (from https://pypi.org/simple/certifi/), version: 2015.11.20
    Found link https://files.pythonhosted.org/packages/df/21/86903664789d010c7693523aa44cd6f96f9d60c7bc813761ff3db5fa8aad/certifi-2015.11.20.1-py2.py3-none-any.whl#sha256=ad86683448f7483d4147a64d96856e551734e594c4563747e9fbe2368df13d3f (from https://pypi.org/simple/certifi/), version: 2015.11.20.1
    Found link https://files.pythonhosted.org/packages/08/59/d39d98454a4fd2c9e0955590398bcfc4047f8e6dde00d7731cefdb32b403/certifi-2015.11.20.1.tar.gz#sha256=30b0a7354a1b32caa8b4705d3f5fb2dadefac7ba4bf8af8a2176869f93e38f16 (from https://pypi.org/simple/certifi/), version: 2015.11.20.1
    Found link https://files.pythonhosted.org/packages/db/60/1ed0106bde7b14b363b15b17cc308aad93ba57d3582570f3ad7180ae0fae/certifi-2016.2.28-py2.py3-none-any.whl#sha256=75c33d546e0a732a4606749cbadcd81929f30d8b814061ca93cde49933dbb860 (from https://pypi.org/simple/certifi/), version: 2016.2.28
    Found link https://files.pythonhosted.org/packages/5c/f8/f6c54727c74579c6bbe5926f5deb9677c5810a33e11da58d1a4e2d09d041/certifi-2016.2.28.tar.gz#sha256=5e8eccf95924658c97b990b50552addb64f55e1e3dfe4880456ac1f287dc79d0 (from https://pypi.org/simple/certifi/), version: 2016.2.28
    Found link https://files.pythonhosted.org/packages/65/da/116b7b175ecdb089406ec24238d1fe668b52d3f25e4e7ba88983807eac6a/certifi-2016.8.2-py2.py3-none-any.whl#sha256=c6290b32cfccf569a621d0449fcaf9283a3e0c77108bc808545b41c779d42e0a (from https://pypi.org/simple/certifi/), version: 2016.8.2
    Found link https://files.pythonhosted.org/packages/60/d8/e4dbd7239f1dd3854135949cc2cc8344602b1545a7929b7bf652ac69fbb6/certifi-2016.8.2.tar.gz#sha256=65ddc34fd9c8509851031d7075b8325393b87e6dbe5875a723959a20266d7a41 (from https://pypi.org/simple/certifi/), version: 2016.8.2
    Found link https://files.pythonhosted.org/packages/dd/ed/e9bf6a9dc79e23c68385c4ea692f0e9e1a7880518872564f88be013b552f/certifi-2016.8.8-py2.py3-none-any.whl#sha256=04f0e6677e6a5a64ba83ade859bcdda254c1ccf58545eb72bc2067f51a01873c (from https://pypi.org/simple/certifi/), version: 2016.8.8
    Found link https://files.pythonhosted.org/packages/41/bf/88a3269c7c95fc94a2c581c4b1b3d3ec21af7a268d6a3a4e54578adccfd6/certifi-2016.8.8.tar.gz#sha256=99864ed602d8a9d212e339b15ffa438895002eda7b7db20dca5309dac9605ae9 (from https://pypi.org/simple/certifi/), version: 2016.8.8
    Found link https://files.pythonhosted.org/packages/34/21/ebb383f944dfc3a14461ee021089da90477be919a5554117c184ae3d44be/certifi-2016.8.31-py2.py3-none-any.whl#sha256=172844a3e2896c924e6aa2657b2e56586a724f27edd0e9592be9353f3a3f6c73 (from https://pypi.org/simple/certifi/), version: 2016.8.31
    Found link https://files.pythonhosted.org/packages/1c/d1/0133a5084f0d17db0270c6061e824a11b0e417d743f5ff4c594f4090ed89/certifi-2016.8.31.tar.gz#sha256=f7708a42d86f29ccc7c8c4ff9d34a8d854d8d78eb2973d1f28406bb43d6b8919 (from https://pypi.org/simple/certifi/), version: 2016.8.31
    Found link https://files.pythonhosted.org/packages/a2/35/b7b457c95fdd661d4c179201e9e58a2181934695943b08ccfcba09284b4e/certifi-2016.9.26-py2.py3-none-any.whl#sha256=a60073d7bb5cb01671877efda875e8dab755b98baedfbb9b8b3d9be2d52ad022 (from https://pypi.org/simple/certifi/), version: 2016.9.26
    Found link https://files.pythonhosted.org/packages/4f/75/e1bc6e363a2c76f8d7e754c27c437dbe4086414e1d6d2f6b2a3e7846f22b/certifi-2016.9.26.tar.gz#sha256=8275aef1bbeaf05c53715bfc5d8569bd1e04ca1e8e69608cc52bcaac2604eb19 (from https://pypi.org/simple/certifi/), version: 2016.9.26
    Found link https://files.pythonhosted.org/packages/21/f7/7bb6b1c5ba1db21515950bc16b22cd7ef7d27024100f326a19921efd2ce0/certifi-2017.1.23-py2.py3-none-any.whl#sha256=f74a224a9860fd5a2e9757230a7ea3eba82d6d46914780abc18e70c8b58d4bf8 (from https://pypi.org/simple/certifi/), version: 2017.1.23
    Found link https://files.pythonhosted.org/packages/b6/fa/ca682d5ace0700008d246664e50db8d095d23750bb212c0086305450c276/certifi-2017.1.23.tar.gz#sha256=81877fb7ac126e9215dfb15bfef7115fdc30e798e0013065158eed0707fd99ce (from https://pypi.org/simple/certifi/), version: 2017.1.23
    Found link https://files.pythonhosted.org/packages/eb/01/c1f58987b777d6c4ec535b4e004a4a07bfc9db06f0c7533367ca6da8f2a6/certifi-2017.4.17-py2.py3-none-any.whl#sha256=f4318671072f030a33c7ca6acaef720ddd50ff124d1388e50c1bda4cbd6d7010 (from https://pypi.org/simple/certifi/), version: 2017.4.17
    Found link https://files.pythonhosted.org/packages/dd/0e/1e3b58c861d40a9ca2d7ea4ccf47271d4456ae4294c5998ad817bd1b4396/certifi-2017.4.17.tar.gz#sha256=f7527ebf7461582ce95f7a9e03dd141ce810d40590834f4ec20cddd54234c10a (from https://pypi.org/simple/certifi/), version: 2017.4.17
    Found link https://files.pythonhosted.org/packages/dc/ec/38df4e406cfca294fd6e242ea38bd943f47885d95e4dbf1783146f80e391/certifi-2017.7.27-py2.py3-none-any.whl#sha256=f0c0494d4a43fc862826a8ac731538ac68120524d4438e864a1ce2a2916e495d (from https://pypi.org/simple/certifi/), version: 2017.7.27
    Found link https://files.pythonhosted.org/packages/fa/70/bf24052d94f00bfdb70ac70840bfa1ba61e6d56ee7da5f62ecbca743c87e/certifi-2017.7.27.tar.gz#sha256=a7e03cbaf96baad108e34602848d0e4f04e59185325a61e63c96fcf67cee5fcd (from https://pypi.org/simple/certifi/), version: 2017.7.27
    Found link https://files.pythonhosted.org/packages/40/66/06130724e8205fc8c105db7edb92871c7fff7d31324d7f4405c762624a43/certifi-2017.7.27.1-py2.py3-none-any.whl#sha256=54a07c09c586b0e4c619f02a5e94e36619da8e2b053e20f594348c0611803704 (from https://pypi.org/simple/certifi/), version: 2017.7.27.1
    Found link https://files.pythonhosted.org/packages/20/d0/3f7a84b0c5b89e94abbd073a5f00c7176089f526edb056686751d5064cbd/certifi-2017.7.27.1.tar.gz#sha256=40523d2efb60523e113b44602298f0960e900388cf3bb6043f645cf57ea9e3f5 (from https://pypi.org/simple/certifi/), version: 2017.7.27.1
    Found link https://files.pythonhosted.org/packages/29/9b/25ef61e948321296f029f53c9f67cc2b54e224db509eb67ce17e0df6044a/certifi-2017.11.5-py2.py3-none-any.whl#sha256=244be0d93b71e93fc0a0a479862051414d0e00e16435707e5bf5000f92e04694 (from https://pypi.org/simple/certifi/), version: 2017.11.5
    Found link https://files.pythonhosted.org/packages/23/3f/8be01c50ed24a4bd6b8da799839066ce0288f66f5e11f0367323467f0cbc/certifi-2017.11.5.tar.gz#sha256=5ec74291ca1136b40f0379e1128ff80e866597e4e2c1e755739a913bbc3613c0 (from https://pypi.org/simple/certifi/), version: 2017.11.5
    Found link https://files.pythonhosted.org/packages/fa/53/0a5562e2b96749e99a3d55d8c7df91c9e4d8c39a9da1f1a49ac9e4f4b39f/certifi-2018.1.18-py2.py3-none-any.whl#sha256=14131608ad2fd56836d33a71ee60fa1c82bc9d2c8d98b7bdbc631fe1b3cd1296 (from https://pypi.org/simple/certifi/), version: 2018.1.18
    Found link https://files.pythonhosted.org/packages/15/d4/2f888fc463d516ff7bf2379a4e9a552fef7f22a94147655d9b1097108248/certifi-2018.1.18.tar.gz#sha256=edbc3f203427eef571f79a7692bb160a2b0f7ccaa31953e99bd17e307cf63f7d (from https://pypi.org/simple/certifi/), version: 2018.1.18
    Found link https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975fc916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl#sha256=9fa520c1bacfb634fa7af20a76bcbd3d5fb390481724c597da32c719a7dca4b0 (from https://pypi.org/simple/certifi/), version: 2018.4.16
    Found link https://files.pythonhosted.org/packages/4d/9c/46e950a6f4d6b4be571ddcae21e7bc846fcbb88f1de3eff0f6dd0a6be55d/certifi-2018.4.16.tar.gz#sha256=13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7 (from https://pypi.org/simple/certifi/), version: 2018.4.16
    Found link https://files.pythonhosted.org/packages/16/1f/50d729c104b21c1042aa51560da6141d1cab476ba7015d92b2111c8db841/certifi-2018.8.13-py2.py3-none-any.whl#sha256=b6e8b28b2b7e771a41ecdd12d4d43262ecab52adebbafa42c77d6b57fb6ad3a4 (from https://pypi.org/simple/certifi/), version: 2018.8.13
    Found link https://files.pythonhosted.org/packages/53/0d/d1d13a63563cc50a27b310f5612645bef06d29a5022a7e79ac659dd0fc50/certifi-2018.8.13.tar.gz#sha256=4c1d68a1408dd090d2f3a869aa94c3947cc1d967821d1ed303208c9f41f0f2f4 (from https://pypi.org/simple/certifi/), version: 2018.8.13
    Found link https://files.pythonhosted.org/packages/df/f7/04fee6ac349e915b82171f8e23cee63644d83663b34c539f7a09aed18f9e/certifi-2018.8.24-py2.py3-none-any.whl#sha256=456048c7e371c089d0a77a5212fb37a2c2dce1e24146e3b7e0261736aaeaa22a (from https://pypi.org/simple/certifi/), version: 2018.8.24
    Found link https://files.pythonhosted.org/packages/e1/0f/f8d5e939184547b3bdc6128551b831a62832713aa98c2ccdf8c47ecc7f17/certifi-2018.8.24.tar.gz#sha256=376690d6f16d32f9d1fe8932551d80b23e9d393a8578c5633a2ed39a64861638 (from https://pypi.org/simple/certifi/), version: 2018.8.24
    Found link https://files.pythonhosted.org/packages/56/9d/1d02dd80bc4cd955f98980f28c5ee2200e1209292d5f9e9cc8d030d18655/certifi-2018.10.15-py2.py3-none-any.whl#sha256=339dc09518b07e2fa7eda5450740925974815557727d6bd35d319c1524a04a4c (from https://pypi.org/simple/certifi/), version: 2018.10.15
    Found link https://files.pythonhosted.org/packages/41/b6/4f0cefba47656583217acd6cd797bc2db1fede0d53090fdc28ad2c8e0716/certifi-2018.10.15.tar.gz#sha256=6d58c986d22b038c8c0df30d639f23a3e6d172a05c3583e766f4c0b785c0986a (from https://pypi.org/simple/certifi/), version: 2018.10.15
    Found link https://files.pythonhosted.org/packages/9f/e0/accfc1b56b57e9750eba272e24c4dddeac86852c2bebd1236674d7887e8a/certifi-2018.11.29-py2.py3-none-any.whl#sha256=993f830721089fef441cdfeb4b2c8c9df86f0c63239f06bd025a76a7daddb033 (from https://pypi.org/simple/certifi/), version: 2018.11.29
    Found link https://files.pythonhosted.org/packages/55/54/3ce77783acba5979ce16674fc98b1920d00b01d337cfaaf5db22543505ed/certifi-2018.11.29.tar.gz#sha256=47f9c83ef4c0c621eaef743f133f09fa8a74a9b75f037e8624f83bd1b6626cb7 (from https://pypi.org/simple/certifi/), version: 2018.11.29
    Found link https://files.pythonhosted.org/packages/60/75/f692a584e85b7eaba0e03827b3d51f45f571c2e793dd731e598828d380aa/certifi-2019.3.9-py2.py3-none-any.whl#sha256=59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5 (from https://pypi.org/simple/certifi/), version: 2019.3.9
    Found link https://files.pythonhosted.org/packages/06/b8/d1ea38513c22e8c906275d135818fee16ad8495985956a9b7e2bb21942a1/certifi-2019.3.9.tar.gz#sha256=b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae (from https://pypi.org/simple/certifi/), version: 2019.3.9
  Using version 2015.9.6.1 (newest of versions: 2015.9.6.1)
  Created temporary directory: /tmp/pip-unpack-6rd_07tz
  Looking up "https://files.pythonhosted.org/packages/cc/7f/fb45b6c47ff3a1e119b8fa0aec4a9d1812f0c9f774d877eca582065ef21e/certifi-2015.9.6.1-py2.py3-none-any.whl" in the cache
  Current age based on date: 6122
  Ignoring unknown cache-control directive: immutable
  Freshness lifetime from max-age: 365000000
  The response is "fresh", returning cached response
  365000000 > 6122
  Using cached https://files.pythonhosted.org/packages/cc/7f/fb45b6c47ff3a1e119b8fa0aec4a9d1812f0c9f774d877eca582065ef21e/certifi-2015.9.6.1-py2.py3-none-any.whl
  Downloading from URL https://files.pythonhosted.org/packages/cc/7f/fb45b6c47ff3a1e119b8fa0aec4a9d1812f0c9f774d877eca582065ef21e/certifi-2015.9.6.1-py2.py3-none-any.whl#sha256=4cbb1f8b30948895f36bb94402598506808833747e0a2e1ca5b1f152ff341da4 (from https://pypi.org/simple/certifi/)
  Added certifi==2015.9.6.1 from https://files.pythonhosted.org/packages/cc/7f/fb45b6c47ff3a1e119b8fa0aec4a9d1812f0c9f774d877eca582065ef21e/certifi-2015.9.6.1-py2.py3-none-any.whl#sha256=4cbb1f8b30948895f36bb94402598506808833747e0a2e1ca5b1f152ff341da4 (from -r /tmp/pipenv-14cspaj5-requirements/pipenv-aimfcxv8-requirement.txt (line 1)) to build tracker '/tmp/pip-req-tracker-ve0qux8y'
  Removed certifi==2015.9.6.1 from https://files.pythonhosted.org/packages/cc/7f/fb45b6c47ff3a1e119b8fa0aec4a9d1812f0c9f774d877eca582065ef21e/certifi-2015.9.6.1-py2.py3-none-any.whl#sha256=4cbb1f8b30948895f36bb94402598506808833747e0a2e1ca5b1f152ff341da4 (from -r /tmp/pipenv-14cspaj5-requirements/pipenv-aimfcxv8-requirement.txt (line 1)) from build tracker '/tmp/pip-req-tracker-ve0qux8y'
Installing collected packages: certifi

Successfully installed certifi-2015.9.6.1
Cleaning up...
Removed build tracker '/tmp/pip-req-tracker-ve0qux8y'
  🐍   β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰ 1/1 β€” 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

Steps to replicate

Create a Pipfile and Pipfile.lock as it can be seen below and run pipenv install. The (old) version of Certifi, as specified in Pipfile.lock, is being installed.


$ pipenv --support

Pipenv version: '2018.11.26'

Pipenv location: '/usr/local/lib/python3.7/site-packages/pipenv'

Python location: '/usr/local/bin/python'

Python installations found:

  • 3.7.3: /usr/local/bin/python
  • 3.7.3: /usr/local/bin/python3.7m
  • 3.5.3: /usr/bin/python3.5m
  • 3.5.3: /usr/bin/python3.5
  • 2.7.13: /usr/bin/python2.7

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.7.3',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '4.9.125-linuxkit',
 'platform_system': 'Linux',
 'platform_version': '#1 SMP Fri Sep 7 08:20:28 UTC 2018',
 'python_full_version': '3.7.3',
 'python_version': '3.7',
 'sys_platform': 'linux'}

System environment variables:

  • LANG
  • HOSTNAME
  • GPG_KEY
  • PWD
  • HOME
  • TERM
  • PYTHON_VERSION
  • SHLVL
  • PATH
  • PYTHON_PIP_VERSION
  • _
  • OLDPWD
  • PIP_DISABLE_PIP_VERSION_CHECK
  • PYTHONDONTWRITEBYTECODE
  • PIP_SHIMS_BASE_MODULE
  • PIP_PYTHON_PATH
  • PYTHONFINDER_IGNORE_UNSUPPORTED

Pipenv–specific environment variables:

Debug–specific environment variables:

  • PATH: /usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • LANG: C.UTF-8
  • PWD: /Users/valentinmorlock/Documents/Projekte/hallo

Contents of Pipfile ('/Users/valentinmorlock/Documents/Projekte/hallo/Pipfile'):

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

[dev-packages]

[packages]
certifi = "*"

[requires]
python_version = "3.7"

Contents of Pipfile.lock ('/Users/valentinmorlock/Documents/Projekte/hallo/Pipfile.lock'):

{
    "_meta": {
        "hash": {
            "sha256": "90b2ef1f5d2291cd91f95158453754fb557d6eb377f4b1d5472eec41f703d155"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.7"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "certifi": {
            "hashes": [
                "sha256:4cbb1f8b30948895f36bb94402598506808833747e0a2e1ca5b1f152ff341da4",
                "sha256:f924457bd89178e565fe1b90359d90639f524e7da1a99988292474f52defbf34"
            ],
            "index": "pypi",
            "version": "==2015.9.6.1"
        }
   },
    "develop": {}
}

Most helpful comment

Pipenv provides three similar commands to achieve the same thing with minor differences:

  • pipenv sync never relock lock files and performs install only.
  • pipenv update always relock and install afterwards.
  • pipenv install relock only when Pipfile.lock mismatches the Pipfile.

Depending on your needs, you can choose from the above three commands, which is very flexible. If you change the behavior of pipenv install to either sync or update then we will probably have a redundant command. So nothing will be changed here.

All 5 comments

Pipenv provides three similar commands to achieve the same thing with minor differences:

  • pipenv sync never relock lock files and performs install only.
  • pipenv update always relock and install afterwards.
  • pipenv install relock only when Pipfile.lock mismatches the Pipfile.

Depending on your needs, you can choose from the above three commands, which is very flexible. If you change the behavior of pipenv install to either sync or update then we will probably have a redundant command. So nothing will be changed here.

@frostming thank you for clarifying. So as I understand, it's only relocking when the (hash of the) Pipfile changes...
Could you maybe explain a bit further what this behavior is intended for or in which situation I would need updates only in case I changed the projects requirements?

The behavior is given to pipenv install, the most used command so that Pipfile and Pipfile.lock will be kept consistent in case people forget to relock after he adds some packages (by manually editing the Pipfile). This is important because Pipenv is a tool to reproduce the environment on the production server. If Pipfile.lock is outdated the environment produced will be probably broken.

@frostming you said

pipenv install relock only when Pipfile.lock mismatches the Pipfile.

Could you explain again - how does pipenv install know that the Pipfile.lock does not match the Pipfile, unless it computes the hashes first?

@ychennay

how does pipenv install know that the Pipfile.lock does not match the Pipfile, unless it computes the hashes first?

Correct, Pipenv calculates the content hash of Pipfile and stores the value in Pipfile.lock

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bgjelstrup picture bgjelstrup  Β·  3Comments

hynek picture hynek  Β·  3Comments

jeyraof picture jeyraof  Β·  3Comments

jacek-jablonski picture jacek-jablonski  Β·  3Comments

marc-fez picture marc-fez  Β·  3Comments