Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When using pipenv alongside pyenv, environments created with --python or PIPENV_PYTHON don't use the specified Python version #4534

Closed
stevecshanks opened this issue Nov 13, 2020 · 3 comments · Fixed by #4535

Comments

@stevecshanks
Copy link
Contributor

Issue description

I'm using pipenv alongside pyenv, so followed the instructions at https://pipenv.pypa.io/en/latest/diagnose/#pipenv-does-not-respect-pyenvs-global-and-local-python-versions. But while the specified Python version is used while creating the virtual environment, the Python version inside it is not the same.

I was able to get this working using --python $(pyenv which python) rather than --python $PYENV_ROOT/shims/python - I'm happy to submit a PR updating the docs if that's the right solution.

Expected result

The version of Python inside the virtual env should be the one specified using --python or PIPENV_PYTHON.

Actual result

If my default Python is 3.9, and I specify 3.8, the virtual env created still uses Python 3.9.

The install step below produces the following output:

Using python: /Users/steve/.pyenv/shims/python
Path to python: /Users/steve/.pyenv/shims/python
Creating a virtualenv for this project...
Pipfile: /Users/steve/projects/pipenv-test/Pipfile
Using /Users/steve/.pyenv/shims/python (3.8.0) to create virtualenv...
⠙ Creating virtual environment...created virtual environment CPython3.9.0.final.0-64 in 631ms
  creator CPython3Posix(dest=/Users/steve/.local/share/virtualenvs/pipenv-test-yE2WCZfV, clear=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/steve/Library/Application Support/virtualenv)
    added seed packages: pip==20.2.4, setuptools==50.3.2, wheel==0.35.1
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

✔ Successfully created virtual environment!
Virtualenv location: /Users/steve/.local/share/virtualenvs/pipenv-test-yE2WCZfV
Creating a Pipfile for this project...
Installing requests...
Installing package: requests
Writing supplied requirement line to temporary file: 'requests'
Installing 'requests'
$ ['/Users/steve/.local/share/virtualenvs/pipenv-test-yE2WCZfV/bin/pip', 'install', '--verbose', '--upgrade', '--exists-action=i', '-r', '/var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenv-2m2n8tf6-requirements/pipenv-llj5cqol-requirement.txt', '-i', 'https://pypi.org/simple']
Using source directory: '/Users/steve/.local/share/virtualenvs/pipenv-test-yE2WCZfV/src'
Adding requests to Pipfile's [packages]...
✔ Installation Succeeded
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
⠼ Locking...
                          ROUND 1
⠋ Locking...Current constraints:
  requests (from -r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))

Finding the best candidates:
  found candidate requests==2.25.0 (constraint was <any>)

Finding secondary dependencies:
  requests==2.25.0          requires certifi>=2017.4.17, chardet<4,>=3.0.2, idna<3,>=2.5, urllib3<1.27,>=1.21.1

New dependencies found in this round:
  adding ['certifi', '>=2017.4.17', '[]']
  adding ['chardet', '<4,>=3.0.2', '[]']
  adding ['idna', '<3,>=2.5', '[]']
  adding ['urllib3', '<1.27,>=1.21.1', '[]']
Removed dependencies in this round:
------------------------------------------------------------
Result of round 1: not stable

                          ROUND 2
Current constraints:
  certifi>=2017.4.17 (from requests==2.25.0->-r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))
  chardet<4,>=3.0.2 (from requests==2.25.0->-r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))
  idna<3,>=2.5 (from requests==2.25.0->-r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))
  requests (from -r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))
  urllib3<1.27,>=1.21.1 (from requests==2.25.0->-r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))

Finding the best candidates:
  found candidate certifi==2020.11.8 (constraint was >=2017.4.17)
  found candidate chardet==3.0.4 (constraint was >=3.0.2,<4)
  found candidate idna==2.10 (constraint was >=2.5,<3)
  found candidate requests==2.25.0 (constraint was <any>)
  found candidate urllib3==1.26.2 (constraint was >=1.21.1,<1.27)

Finding secondary dependencies:
  certifi==2020.11.8        requires -
  urllib3==1.26.2           requires -
  idna==2.10                requires -
  chardet==3.0.4            requires -
  requests==2.25.0          requires certifi>=2017.4.17, chardet<4,>=3.0.2, idna<3,>=2.5, urllib3<1.27,>=1.21.1
------------------------------------------------------------
Result of round 2: stable, done

Generating hashes:
  certifi
  urllib3
  idna
  chardet
  requests
ROUND 1
Current constraints:
  requests (from -r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))

Finding the best candidates:
  found candidate requests==2.25.0 (constraint was <any>)

Finding secondary dependencies:
  requests==2.25.0          requires certifi>=2017.4.17, chardet<4,>=3.0.2, idna<3,>=2.5, urllib3<1.27,>=1.21.1

New dependencies found in this round:
  adding ['certifi', '>=2017.4.17', '[]']
  adding ['chardet', '<4,>=3.0.2', '[]']
  adding ['idna', '<3,>=2.5', '[]']
  adding ['urllib3', '<1.27,>=1.21.1', '[]']
Removed dependencies in this round:
------------------------------------------------------------
Result of round 1: not stable

                          ROUND 2
Current constraints:
  certifi>=2017.4.17 (from requests==2.25.0->-r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))
  chardet<4,>=3.0.2 (from requests==2.25.0->-r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))
  idna<3,>=2.5 (from requests==2.25.0->-r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))
  requests (from -r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))
  urllib3<1.27,>=1.21.1 (from requests==2.25.0->-r /var/folders/4s/_vl6qk7x14lb28jn6yh9z76r0000gn/T/pipenvzf06t399requirements/pipenv-57vc1sxd-constraints.txt (line 2))

Finding the best candidates:
  found candidate certifi==2020.11.8 (constraint was >=2017.4.17)
  found candidate chardet==3.0.4 (constraint was >=3.0.2,<4)
  found candidate idna==2.10 (constraint was >=2.5,<3)
  found candidate requests==2.25.0 (constraint was <any>)
  found candidate urllib3==1.26.2 (constraint was >=1.21.1,<1.27)

Finding secondary dependencies:
  certifi==2020.11.8        requires -
  urllib3==1.26.2           requires -
  idna==2.10                requires -
  chardet==3.0.4            requires -
  requests==2.25.0          requires certifi>=2017.4.17, chardet<4,>=3.0.2, idna<3,>=2.5, urllib3<1.27,>=1.21.1
------------------------------------------------------------
Result of round 2: stable, done

Generating hashes:
  certifi
  urllib3
  idna
  chardet
  requests
✔ Success!
Updated Pipfile.lock (fe5a22)!
Installing dependencies from Pipfile.lock (fe5a22)...
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 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

pyenv local 3.8.0
pipenv install requests --verbose --python $PYENV_ROOT/shims/python
pipenv run python --version

$ pipenv --support

Pipenv version: '2020.11.4'

Pipenv location: '/usr/local/Cellar/pipenv/2020.11.4/libexec/lib/python3.9/site-packages/pipenv'

Python location: '/usr/local/Cellar/pipenv/2020.11.4/libexec/bin/python'

Python installations found:

  • 3.9.0: /Users/steve/.pyenv/versions/3.9.0/bin/python3
  • 3.8.0: /Users/steve/.pyenv/versions/3.8.0/bin/python3
  • 3.6.1: /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
  • 3.6.1: /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
  • 3.6.1: /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6m
  • 3.6.1: /usr/local/bin/python3
  • 3.6.1: /usr/local/bin/python3.6
  • 3.6.1: /usr/local/bin/python3.6m
  • 2.7.16: /usr/bin/python2.7

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.9.0',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '17.7.0',
 'platform_system': 'Darwin',
 'platform_version': 'Darwin Kernel Version 17.7.0: Mon Aug 31 22:11:23 PDT '
                     '2020; root:xnu-4570.71.82.6~1/RELEASE_X86_64',
 'python_full_version': '3.9.0',
 'python_version': '3.9',
 'sys_platform': 'darwin'}

System environment variables:

  • PATH
  • TERM_PROGRAM
  • PYENV_ROOT
  • TERM
  • SHELL
  • TMPDIR
  • Apple_PubSub_Socket_Render
  • TERM_PROGRAM_VERSION
  • TERM_SESSION_ID
  • ZSH
  • USER
  • SSH_AUTH_SOCK
  • __CF_USER_TEXT_ENCODING
  • PAGER
  • LSCOLORS
  • _
  • PWD
  • LANG
  • ITERM_PROFILE
  • XPC_FLAGS
  • XPC_SERVICE_NAME
  • PYENV_SHELL
  • SHLVL
  • HOME
  • COLORFGBG
  • LC_TERMINAL_VERSION
  • ITERM_SESSION_ID
  • LESS
  • LOGNAME
  • LC_CTYPE
  • GOPATH
  • LC_TERMINAL
  • COLORTERM
  • 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/Cellar/pipenv/2020.11.4/libexec/tools:/Users/steve/.pyenv/shims:/Users/steve/projects/go/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin
  • SHELL: /bin/zsh
  • LANG: en_GB.UTF-8
  • PWD: /Users/steve/projects/pipenv-test

Contents of Pipfile ('/Users/steve/projects/pipenv-test/Pipfile'):

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

[packages]
requests = "*"

[dev-packages]

[requires]
python_version = "3.9"

Contents of Pipfile.lock ('/Users/steve/projects/pipenv-test/Pipfile.lock'):

{
  "_meta": {
    "hash": {
      "sha256": "b8c2e1580c53e383cfe4254c1f16560b855d984fde8b2beb3bf6ee8fc2fe5a22"
    },
    "pipfile-spec": 6,
    "requires": {
      "python_version": "3.9"
    },
    "sources": [
      {
        "name": "pypi",
        "url": "https://pypi.org/simple",
        "verify_ssl": true
      }
    ]
  },
  "default": {
    "certifi": {
      "hashes": [
        "sha256:1f422849db327d534e3d0c5f02a263458c3955ec0aae4ff09b95f195c59f4edd",
        "sha256:f05def092c44fbf25834a51509ef6e631dc19765ab8a57b4e7ab85531f0a9cf4"
      ],
      "version": "==2020.11.8"
    },
    "chardet": {
      "hashes": [
        "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
        "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
      ],
      "version": "==3.0.4"
    },
    "idna": {
      "hashes": [
        "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6",
        "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"
      ],
      "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
      "version": "==2.10"
    },
    "requests": {
      "hashes": [
        "sha256:7f1a0b932f4a60a1a65caa4263921bb7d9ee911957e0ae4a23a6dd08185ad5f8",
        "sha256:e786fa28d8c9154e6a4de5d46a1d921b8749f8b74e28bde23768e5e16eece998"
      ],
      "index": "pypi",
      "version": "==2.25.0"
    },
    "urllib3": {
      "hashes": [
        "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08",
        "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"
      ],
      "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
      "version": "==1.26.2"
    }
  },
  "develop": {}
}
@frostming
Copy link
Contributor

Can't reproduce with exactly the same steps in a linuxbrew image:

linuxbrew@037a2aea3da9:~/app$ pyenv global 3.9.0
linuxbrew@037a2aea3da9:~/app$ python -V
Python 3.9.0
linuxbrew@037a2aea3da9:~/app$ pyenv local 3.8.6
linuxbrew@037a2aea3da9:~/app$ pipenv --python ~/.pyenv/shims/python
Virtualenv already exists!
Removing existing virtualenv...
Warning: the environment variable LANG is not set!
We recommend setting this in ~/.profile (or equivalent) for proper expected behavior.
Creating a virtualenv for this project...
Pipfile: /home/linuxbrew/app/Pipfile
Using /home/linuxbrew/.pyenv/shims/python (3.8.6) to create virtualenv...
⠴ Creating virtual environment...created virtual environment CPython3.8.6.final.0-64 in 287ms
  creator CPython3Posix(dest=/home/linuxbrew/.local/share/virtualenvs/app-F-L2ItSf, clear=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/linuxbrew/.local/share/virtualenv)
    added seed packages: pip==20.2.4, setuptools==50.3.2, wheel==0.35.1
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

✔ Successfully created virtual environment!
Virtualenv location: /home/linuxbrew/.local/share/virtualenvs/app-F-L2ItSf

@frostming
Copy link
Contributor

But basically, avoid using shimmed Python interpreter to create virtualenv

stevecshanks added a commit to stevecshanks/pipenv that referenced this issue Nov 13, 2020
Also removed the PIPENV_PYTHON suggestion, as this is likely to cause
confusion if added to e.g. .bashrc - it will always be set to the
global pyenv.

Fixes pypa#4534
@stevecshanks
Copy link
Contributor Author

I've been able to replicate on another Mac, but was struggling to get Python to build correctly on linuxbrew, so wasn't able to try your steps above.

I agree that avoiding using the shim should fix the issue though, so I've pushed up a documentation PR: #4535

Happy to make any changes to the above, just let me know!

wip-sync referenced this issue in NetBSD/pkgsrc-wip Jan 21, 2022
2022.1.8 (2022-01-08)
=====================

Bug Fixes
---------

- Remove the extra parentheses around the venv prompt.  `#4877 <https://github.com/pypa/pipenv/issues/4877>`_
- Fix a bug of installation fails when extra index url is given.  `#4881 <https://github.com/pypa/pipenv/issues/4881>`_
- Fix regression where lockfiles would only include the hashes for releases for the platform generating the lockfile  `#4885 <https://github.com/pypa/pipenv/issues/4885>`_
- Fix the index parsing to reject illegal requirements.txt.  `#4899 <https://github.com/pypa/pipenv/issues/4899>`_

2021.11.23 (2021-11-23)
=======================

Bug Fixes
---------

- Update ``charset-normalizer`` from ``2.0.3`` to ``2.0.7``, this fixes an import error on Python 3.6.  `#4865 <https://github.com/pypa/pipenv/issues/4865>`_
- Fix a bug of deleting a virtualenv that is not managed by Pipenv.  `#4867 <https://github.com/pypa/pipenv/issues/4867>`_
- Fix a bug that source is not added to ``Pipfile`` when index url is given with ``pipenv install``.  `#4873 <https://github.com/pypa/pipenv/issues/4873>`_

2021.11.15 (2021-11-15)
=======================

Bug Fixes
---------

- Return an empty dict when ``PIPENV_DONT_LOAD_ENV`` is set.  `#4851 <https://github.com/pypa/pipenv/issues/4851>`_
- Don't use ``sys.executable`` when inside an activated venv.  `#4852 <https://github.com/pypa/pipenv/issues/4852>`_

Vendored Libraries
------------------

- Drop the vendored ``jinja2`` dependency as it is not needed any more.  `#4858 <https://github.com/pypa/pipenv/issues/4858>`_
- Update ``click`` from ``8.0.1`` to ``8.0.3``, to fix a problem with bash completion.  `#4860 <https://github.com/pypa/pipenv/issues/4860>`_
- Drop unused vendor ``chardet``.  `#4862 <https://github.com/pypa/pipenv/issues/4862>`_

Improved Documentation
----------------------

- Fix the documentation to reflect the fact that special characters must be percent-encoded in the URL.  `#4856 <https://github.com/pypa/pipenv/issues/4856>`_

2021.11.9 (2021-11-09)
======================

Features & Improvements
-----------------------

- Replace ``click-completion`` with ``click``'s own completion implementation.  `#4786 <https://github.com/pypa/pipenv/issues/4786>`_

Bug Fixes
---------

- Fix a bug that ``pipenv run`` doesn't set environment variables correctly.  `#4831 <https://github.com/pypa/pipenv/issues/4831>`_
- Fix a bug that certifi can't be loaded within ``notpip``'s vendor library. This makes several objects of ``pip`` fail to be imported.  `#4833 <https://github.com/pypa/pipenv/issues/4833>`_
- Fix a bug that ``3.10.0`` can be found be python finder.  `#4837 <https://github.com/pypa/pipenv/issues/4837>`_

Vendored Libraries
------------------

- Update ``pythonfinder`` from ``1.2.8`` to ``1.2.9``.  `#4837 <https://github.com/pypa/pipenv/issues/4837>`_

2021.11.5.post0 (2021-11-05)
============================

Bug Fixes
---------

- Fix a regression that ``pipenv shell`` fails to start a subshell.  `#4828 <https://github.com/pypa/pipenv/issues/4828>`_
- Fix a regression that ``pip_shims`` object isn't imported correctly.  `#4829 <https://github.com/pypa/pipenv/issues/4829>`_

2021.11.5 (2021-11-05)
======================

Features & Improvements
-----------------------

- Avoid sharing states but create project objects on demand. So that most integration test cases are able to switch to a in-process execution method.  `#4757 <https://github.com/pypa/pipenv/issues/4757>`_
- Shell-quote ``pip`` commands when logging.  `#4760 <https://github.com/pypa/pipenv/issues/4760>`_

Bug Fixes
---------

- Ignore empty .venv in rood dir and create project name base virtual environment  `#4790 <https://github.com/pypa/pipenv/issues/4790>`_

Vendored Libraries
------------------

- Update vendored dependencies
  - ``attrs`` from ``20.3.0`` to ``21.2.0``
  - ``cerberus`` from ``1.3.2`` to ``1.3.4``
  - ``certifi`` from ``2020.11.8`` to ``2021.5.30``
  - ``chardet`` from ``3.0.4`` to ``4.0.0``
  - ``click`` from ``7.1.2`` to ``8.0.1``
  - ``distlib`` from ``0.3.1`` to ``0.3.2``
  - ``idna`` from ``2.10`` to ``3.2``
  - ``importlib-metadata`` from ``2.0.0`` to ``4.6.1``
  - ``importlib-resources`` from ``3.3.0`` to ``5.2.0``
  - ``jinja2`` from ``2.11.2`` to ``3.0.1``
  - ``markupsafe`` from ``1.1.1`` to ``2.0.1``
  - ``more-itertools`` from ``5.0.0`` to ``8.8.0``
  - ``packaging`` from ``20.8`` to ``21.0``
  - ``pep517`` from ``0.9.1`` to ``0.11.0``
  - ``pipdeptree`` from ``1.0.0`` to ``2.0.0``
  - ``ptyprocess`` from ``0.6.0`` to ``0.7.0``
  - ``python-dateutil`` from ``2.8.1`` to ``2.8.2``
  - ``python-dotenv`` from ``0.15.0`` to ``0.19.0``
  - ``pythonfinder`` from ``1.2.5`` to ``1.2.8``
  - ``requests`` from ``2.25.0`` to ``2.26.0``
  - ``shellingham`` from ``1.3.2`` to ``1.4.0``
  - ``six`` from ``1.15.0`` to ``1.16.0``
  - ``tomlkit`` from ``0.7.0`` to ``0.7.2``
  - ``urllib3`` from ``1.26.1`` to ``1.26.6``
  - ``zipp`` from ``1.2.0`` to ``3.5.0``

  Add new vendored dependencies
  - ``charset-normalizer 2.0.3``
  - ``termcolor 1.1.0``
  - ``tomli 1.1.0``
  - ``wheel 0.36.2``  `#4747 <https://github.com/pypa/pipenv/issues/4747>`_
- Drop the dependencies for Python 2.7 compatibility purpose.  `#4751 <https://github.com/pypa/pipenv/issues/4751>`_
- Switch the dependency resolver from ``pip-tools`` to `pip`.

  Update vendor libraries:
  - Update ``requirementslib`` from ``1.5.16`` to ``1.6.1``
  - Update ``pip-shims`` from ``0.5.6`` to ``0.6.0``
  - New vendor ``platformdirs 2.4.0``  `#4759 <https://github.com/pypa/pipenv/issues/4759>`_

Improved Documentation
----------------------

- remove prefixes on install commands for easy copy/pasting  `#4792 <https://github.com/pypa/pipenv/issues/4792>`_
- Officially drop support for Python 2.7 and Python 3.5.  `#4261 <https://github.com/pypa/pipenv/issues/4261>`_

2021.5.29 (2021-05-29)
======================

Bug Fixes
---------

- Fix a bug where passing --skip-lock when PIPFILE has no [SOURCE] section throws the error: "tomlkit.exceptions.NonExistentKey: 'Key "source" does not exist.'"  `#4141 <https://github.com/pypa/pipenv/issues/4141>`_
- Fix bug where environment wouldn't activate in paths containing & and $ symbols  `#4538 <https://github.com/pypa/pipenv/issues/4538>`_
- Fix a bug that ``importlib-metadata`` from the project's dependencies conflicts with that from ``pipenv``'s.  `#4549 <https://github.com/pypa/pipenv/issues/4549>`_
- Fix a bug where ``pep508checker.py`` did not expect double-digit Python minor versions (e.g. "3.10").  `#4602 <https://github.com/pypa/pipenv/issues/4602>`_
- Fix bug where environment wouldn't activate in paths containing () and [] symbols  `#4615 <https://github.com/pypa/pipenv/issues/4615>`_
- Fix bug preventing use of pipenv lock --pre  `#4642 <https://github.com/pypa/pipenv/issues/4642>`_

Vendored Libraries
------------------

- Update ``packaging`` from ``20.4`` to ``20.8``.  `#4591 <https://github.com/pypa/pipenv/issues/4591>`_

2020.11.15 (2020-11-15)
=======================

Features & Improvements
-----------------------

- Support expanding environment variables in requirement URLs.  `#3516 <https://github.com/pypa/pipenv/issues/3516>`_
- Show warning message when a dependency is skipped in locking due to the mismatch of its markers.  `#4346 <https://github.com/pypa/pipenv/issues/4346>`_

Bug Fixes
---------

- Fix a bug that executable scripts with leading backslash can't be executed via ``pipenv run``.  `#4368 <https://github.com/pypa/pipenv/issues/4368>`_
- Fix a bug that VCS dependencies always satisfy even if the ref has changed.  `#4387 <https://github.com/pypa/pipenv/issues/4387>`_
- Restrict the acceptable hash type to SHA256 only.  `#4517 <https://github.com/pypa/pipenv/issues/4517>`_
- Fix the output of ``pipenv scripts`` under Windows platform.  `#4523 <https://github.com/pypa/pipenv/issues/4523>`_
- Fix a bug that the resolver takes wrong section to validate constraints.  `#4527 <https://github.com/pypa/pipenv/issues/4527>`_

Vendored Libraries
------------------

- Update vendored dependencies:
    - ``colorama`` from ``0.4.3`` to ``0.4.4``
    - ``python-dotenv`` from ``0.10.3`` to ``0.15.0``
    - ``first`` from ``2.0.1`` to ``2.0.2``
    - ``iso8601`` from ``0.1.12`` to ``0.1.13``
    - ``parse`` from ``1.15.0`` to ``1.18.0``
    - ``pipdeptree`` from ``0.13.2`` to ``1.0.0``
    - ``requests`` from ``2.23.0`` to ``2.25.0``
    - ``idna`` from ``2.9`` to ``2.10``
    - ``urllib3`` from ``1.25.9`` to ``1.26.1``
    - ``certifi`` from ``2020.4.5.1`` to ``2020.11.8``
    - ``requirementslib`` from ``1.5.15`` to ``1.5.16``
    - ``attrs`` from ``19.3.0`` to ``20.3.0``
    - ``distlib`` from ``0.3.0`` to ``0.3.1``
    - ``packaging`` from ``20.3`` to ``20.4``
    - ``six`` from ``1.14.0`` to ``1.15.0``
    - ``semver`` from ``2.9.0`` to ``2.13.0``
    - ``toml`` from ``0.10.1`` to ``0.10.2``
    - ``cached-property`` from ``1.5.1`` to ``1.5.2``
    - ``yaspin`` from ``0.14.3`` to ``1.2.0``
    - ``resolvelib`` from ``0.3.0`` to ``0.5.2``
    - ``pep517`` from ``0.8.2`` to ``0.9.1``
    - ``zipp`` from ``0.6.0`` to ``1.2.0``
    - ``importlib-metadata`` from ``1.6.0`` to ``2.0.0``
    - ``importlib-resources`` from ``1.5.0`` to ``3.3.0``  `#4533 <https://github.com/pypa/pipenv/issues/4533>`_

Improved Documentation
----------------------

- Fix suggested pyenv setup to avoid using shimmed interpreter  `#4534 <https://github.com/pypa/pipenv/issues/4534>`_

2020.11.4 (2020-11-04)
======================

Features & Improvements
-----------------------

- Add a new command ``pipenv scripts`` to display shortcuts from Pipfile.  `#3686 <https://github.com/pypa/pipenv/issues/3686>`_
- Retrieve package file hash from URL to accelerate the locking process.  `#3827 <https://github.com/pypa/pipenv/issues/3827>`_
- Add the missing ``--system`` option to ``pipenv sync``.  `#4441 <https://github.com/pypa/pipenv/issues/4441>`_
- Add a new option pair ``--header/--no-header`` to ``pipenv lock`` command,
  which adds a header to the generated requirements.txt  `#4443 <https://github.com/pypa/pipenv/issues/4443>`_

Bug Fixes
---------

- Fix a bug that percent encoded characters will be unquoted incorrectly in the file URL.  `#4089 <https://github.com/pypa/pipenv/issues/4089>`_
- Fix a bug where setting PIPENV_PYTHON to file path breaks environment name  `#4225 <https://github.com/pypa/pipenv/issues/4225>`_
- Fix a bug that paths are not normalized before comparison.  `#4330 <https://github.com/pypa/pipenv/issues/4330>`_
- Handle Python major and minor versions correctly in Pipfile creation.  `#4379 <https://github.com/pypa/pipenv/issues/4379>`_
- Fix a bug that non-wheel file requirements can be resolved successfully.  `#4386 <https://github.com/pypa/pipenv/issues/4386>`_
- Fix a bug that ``pexept.exceptions.TIMEOUT`` is not caught correctly because of the wrong import path.  `#4424 <https://github.com/pypa/pipenv/issues/4424>`_
- Fix a bug that compound TOML table is not parsed correctly.  `#4433 <https://github.com/pypa/pipenv/issues/4433>`_
- Fix a bug that invalid Python paths from Windows registry break ``pipenv install``.  `#4436 <https://github.com/pypa/pipenv/issues/4436>`_
- Fix a bug that function calls in ``setup.py`` can't be parsed rightly.  `#4446 <https://github.com/pypa/pipenv/issues/4446>`_
- Fix a bug that dist-info inside ``venv`` directory will be mistaken as the editable package's metadata.  `#4480 <https://github.com/pypa/pipenv/issues/4480>`_
- Make the order of hashes in resolution result stable.  `#4513 <https://github.com/pypa/pipenv/issues/4513>`_

Vendored Libraries
------------------

- Update ``tomlkit`` from ``0.5.11`` to ``0.7.0``.  `#4433 <https://github.com/pypa/pipenv/issues/4433>`_
- Update ``requirementslib`` from ``1.5.13`` to ``1.5.14``.  `#4480 <https://github.com/pypa/pipenv/issues/4480>`_

Improved Documentation
----------------------

- Discourage homebrew installation in installation guides.  `#4013 <https://github.com/pypa/pipenv/issues/4013>`_
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants