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

Pipenv silently ignores dependency when python_full_version is specified and release candidate python is used #5835

Closed
bjorn-verstrepen opened this issue Aug 19, 2023 · 14 comments

Comments

@bjorn-verstrepen
Copy link

bjorn-verstrepen commented Aug 19, 2023

Issue description

When installing Flask-Limiter==2.6.2 on python 3.11.0rc1, the Pipenv installer silently ignores package rich as it would not match the environment.

Note that python3.11.0rc1 is the default python 3.11 version for ubuntu 22.04 (jammy-updates) right now.

Expected result

As python 3.11.0rc1 seems to fall within the specified range of python_full_version >= "3.6.3" and python_full_version < "4.0.0" I would expect it to install rich without an issue.

Actual result

pipenv -v install Flask-Limiter==2.6.2 --verbose

Installing Flask-Limiter==2.6.2...
Resolving Flask-Limiter==2.6.2...
Adding Flask-Limiter to Pipfile's [packages] ...
✔ Installation Succeeded
Installing dependencies from Pipfile.lock (78b669)...
Writing supplied requirement line to temporary file: "rich==12.6.0 ; python_full_version >= '3.6.3' and python_full_version < '4.0.0' 
--hash=sha256:a4eb26484f2c82589bd9a17c73d32a010b1e29d89f1604cd9bf3a2097b81bb5e --hash=sha256:ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0"
Install Phase: Standard Requirements
Preparing Installation of 'rich'
$ /home/bjorn/.local/share/virtualenvs/pipenv-test-1-nbWZvbCN/bin/python /home/bjorn/.local/lib/python3.11/site-packages/pipenv/patched/pip/__pip-runner__.py install -i https://pypi.org/simple 
--no-input --upgrade --no-deps -r /tmp/pipenv-zbkizs0i-requirements/pipenv-axkt034j-hashed-reqs.txt
Using source directory: '/home/bjorn/.local/share/virtualenvs/pipenv-test-1-nbWZvbCN/src'
Ignoring rich: markers 'python_full_version >= "3.6.3" and python_full_version < "4.0.0"' don't match your environment

Steps to replicate

Make sure python 3.11.0rc1 is installed and run pipenv -v install Flask-Limiter==2.6.2 --verbose.


$ pipenv --support

Pipenv version: '2023.7.23'

Pipenv location: '/home/bjorn/.local/lib/python3.11/site-packages/pipenv'

Python location: '/usr/bin/python3.11'

OS Name: 'posix'

User pip version: '23.2.1'

user Python installations found:

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.11.0c1',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '5.15.0-78-generic',
 'platform_system': 'Linux',
 'platform_version': '#85-Ubuntu SMP Fri Jul 7 15:25:09 UTC 2023',
 'python_full_version': '3.11.0rc1',
 'python_version': '3.11',
 'sys_platform': 'linux'}

System environment variables:

  • USER
  • PAM_KWALLET5_LOGIN
  • LC_TIME
  • XDG_SEAT
  • XDG_SESSION_TYPE
  • SSH_AGENT_PID
  • SHLVL
  • HOME
  • DESKTOP_SESSION
  • XDG_SEAT_PATH
  • LC_MONETARY
  • DBUS_SESSION_BUS_ADDRESS
  • LIBVIRT_DEFAULT_URI
  • MANDATORY_PATH
  • LOGNAME
  • XDG_SESSION_CLASS
  • DEFAULTS_PATH
  • XDG_SESSION_ID
  • PATH
  • XDG_SESSION_PATH
  • LC_ADDRESS
  • XDG_RUNTIME_DIR
  • DISPLAY
  • LANG
  • XDG_CURRENT_DESKTOP
  • LC_TELEPHONE
  • XDG_SESSION_DESKTOP
  • XAUTHORITY
  • SSH_AUTH_SOCK
  • SHELL
  • LC_NAME
  • QT_ACCESSIBILITY
  • LC_MEASUREMENT
  • GPG_AGENT_INFO
  • LC_IDENTIFICATION
  • XDG_VTNR
  • PWD
  • XDG_CONFIG_DIRS
  • XDG_DATA_DIRS
  • LC_NUMERIC
  • LC_PAPER
  • QT_SCREEN_SCALE_FACTORS
  • QT_AUTO_SCREEN_SCALE_FACTOR
  • KDE_FULL_SESSION
  • KDE_SESSION_VERSION
  • KDE_SESSION_UID
  • KDE_APPLICATIONS_AS_SCOPE
  • IM_CONFIG_PHASE
  • SYSTEMD_EXEC_PID
  • XCURSOR_THEME
  • XCURSOR_SIZE
  • GTK_RC_FILES
  • GTK2_RC_FILES
  • SESSION_MANAGER
  • CHROME_DESKTOP
  • ORIGINAL_XDG_CURRENT_DESKTOP
  • GDK_BACKEND
  • LS_COLORS
  • LESSCLOSE
  • LESSOPEN
  • _
  • TERM_PROGRAM
  • TERM_PROGRAM_VERSION
  • COLORTERM
  • GIT_ASKPASS
  • VSCODE_GIT_ASKPASS_NODE
  • VSCODE_GIT_ASKPASS_EXTRA_ARGS
  • VSCODE_GIT_ASKPASS_MAIN
  • VSCODE_GIT_IPC_HANDLE
  • VSCODE_INJECTION
  • ZDOTDIR
  • USER_ZDOTDIR
  • TERM
  • OLDPWD
  • P9K_TTY
  • _P9K_TTY
  • ZSH
  • PAGER
  • LESS
  • LSCOLORS
  • VIRTUAL_ENV_DISABLE_PROMPT
  • P9K_SSH
  • LESS_TERMCAP_mb
  • LESS_TERMCAP_md
  • LESS_TERMCAP_me
  • LESS_TERMCAP_se
  • LESS_TERMCAP_so
  • LESS_TERMCAP_ue
  • LESS_TERMCAP_us
  • LS_OPTIONS
  • PYTHONDONTWRITEBYTECODE
  • PIP_DISABLE_PIP_VERSION_CHECK
  • PYTHONFINDER_IGNORE_UNSUPPORTED

Pipenv–specific environment variables:

Debug–specific environment variables:

  • PATH: /home/bjorn/.local/bin:/home/bjorn/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/bjorn/.cabal/bin:/home/bjorn/.ghcup/bin
  • SHELL: /bin/bash
  • LANG: en_US.UTF-8
  • PWD: /home/bjorn/Programming/Python/test/pipenv-test-1

Contents of Pipfile ('/home/bjorn/Programming/Python/test/pipenv-test-1/Pipfile'):

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

[packages]
flask-limiter = "==2.6.2"

[dev-packages]

[requires]
python_version = "3.11"
python_full_version = "3.11.0"

Contents of Pipfile.lock ('/home/bjorn/Programming/Python/test/pipenv-test-1/Pipfile.lock'):

{
    "_meta": {
        "hash": {
            "sha256": "f62ab241440a6dd36b92ff0bd22ae46245e8b035a64f808cb8385e1c0678b669"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_full_version": "3.11.0",
            "python_version": "3.11"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "blinker": {
            "hashes": [
                "sha256:4afd3de66ef3a9f8067559fb7a1cbe555c17dcbe15971b05d1b625c3e7abe213",
                "sha256:c3d739772abb7bc2860abf5f2ec284223d9ad5c76da018234f6f50d6f31ab1f0"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==1.6.2"
        },
        "click": {
            "hashes": [
                "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28",
                "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==8.1.7"
        },
        "commonmark": {
            "hashes": [
                "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60",
                "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"
            ],
            "version": "==0.9.1"
        },
        "deprecated": {
            "hashes": [
                "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c",
                "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"
            ],
            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
            "version": "==1.2.14"
        },
        "flask": {
            "hashes": [
                "sha256:77fd4e1249d8c9923de34907236b747ced06e5467ecac1a7bb7115ae0e9670b0",
                "sha256:8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef"
            ],
            "markers": "python_version >= '3.8'",
            "version": "==2.3.2"
        },
        "flask-limiter": {
            "hashes": [
                "sha256:58b361347f68942ea2d0a9004427098b41da705081494fe3b9be7b67c4ae32c4",
                "sha256:c8451532f88818e839bbdd650cfd424ec11e89fa87e0034f525401399a160e1e"
            ],
            "index": "pypi",
            "version": "==2.6.2"
        },
        "importlib-resources": {
            "hashes": [
                "sha256:134832a506243891221b88b4ae1213327eea96ceb4e407a00d790bb0626f45cf",
                "sha256:4359457e42708462b9626a04657c6208ad799ceb41e5c58c57ffa0e6a098a5d4"
            ],
            "markers": "python_version >= '3.8'",
            "version": "==6.0.1"
        },
        "itsdangerous": {
            "hashes": [
                "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44",
                "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==2.1.2"
        },
        "jinja2": {
            "hashes": [
                "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852",
                "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==3.1.2"
        },
        "limits": {
            "hashes": [
                "sha256:3ad525faeb7e1c63859ca1cae34c9ed22a8f22c9ea9d96e2f412869f6b36beb9",
                "sha256:b728c9ab3c6163997b1d11a51d252d951efd13f0d248ea2403383952498f8a22"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==3.5.0"
        },
        "markupsafe": {
            "hashes": [
                "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e",
                "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e",
                "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431",
                "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686",
                "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559",
                "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc",
                "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c",
                "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0",
                "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4",
                "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9",
                "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575",
                "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba",
                "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d",
                "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3",
                "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00",
                "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155",
                "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac",
                "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52",
                "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f",
                "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8",
                "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b",
                "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24",
                "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea",
                "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198",
                "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0",
                "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee",
                "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be",
                "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2",
                "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707",
                "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6",
                "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58",
                "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779",
                "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636",
                "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c",
                "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad",
                "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee",
                "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc",
                "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2",
                "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48",
                "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7",
                "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e",
                "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b",
                "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa",
                "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5",
                "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e",
                "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb",
                "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9",
                "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57",
                "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc",
                "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==2.1.3"
        },
        "packaging": {
            "hashes": [
                "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61",
                "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==23.1"
        },
        "pygments": {
            "hashes": [
                "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692",
                "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==2.16.1"
        },
        "rich": {
            "hashes": [
                "sha256:a4eb26484f2c82589bd9a17c73d32a010b1e29d89f1604cd9bf3a2097b81bb5e",
                "sha256:ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0"
            ],
            "markers": "python_full_version >= '3.6.3' and python_full_version < '4.0.0'",
            "version": "==12.6.0"
        },
        "setuptools": {
            "hashes": [
                "sha256:3d4dfa6d95f1b101d695a6160a7626e15583af71a5f52176efa5d39a054d475d",
                "sha256:3d8083eed2d13afc9426f227b24fd1659489ec107c0e86cec2ffdde5c92e790b"
            ],
            "markers": "python_version >= '3.8'",
            "version": "==68.1.2"
        },
        "typing-extensions": {
            "hashes": [
                "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36",
                "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==4.7.1"
        },
        "werkzeug": {
            "hashes": [
                "sha256:2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8",
                "sha256:effc12dba7f3bd72e605ce49807bbe692bd729c3bb122a3b91747a6ae77df528"
            ],
            "markers": "python_version >= '3.8'",
            "version": "==2.3.7"
        },
        "wrapt": {
            "hashes": [
                "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0",
                "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420",
                "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a",
                "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c",
                "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079",
                "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923",
                "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f",
                "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1",
                "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8",
                "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86",
                "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0",
                "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364",
                "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e",
                "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c",
                "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e",
                "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c",
                "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727",
                "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff",
                "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e",
                "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29",
                "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7",
                "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72",
                "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475",
                "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a",
                "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317",
                "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2",
                "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd",
                "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640",
                "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98",
                "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248",
                "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e",
                "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d",
                "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec",
                "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1",
                "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e",
                "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9",
                "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92",
                "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb",
                "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094",
                "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46",
                "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29",
                "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd",
                "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705",
                "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8",
                "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975",
                "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb",
                "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e",
                "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b",
                "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418",
                "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019",
                "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1",
                "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba",
                "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6",
                "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2",
                "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3",
                "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7",
                "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752",
                "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416",
                "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f",
                "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1",
                "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc",
                "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145",
                "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee",
                "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a",
                "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7",
                "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b",
                "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653",
                "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0",
                "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90",
                "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29",
                "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6",
                "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034",
                "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09",
                "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559",
                "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"
            ],
            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
            "version": "==1.15.0"
        }
    },
    "develop": {}
}
@matteius
Copy link
Member

@bjorn-verstrepen If possible, please check this against: #5793

@matteius
Copy link
Member

@bjorn-verstrepen Actually nevermind, I just cut a new release with that branch I referenced -- if you could check 2023.8.19 instead, it would be helpful. Thank you!

@bjorn-verstrepen
Copy link
Author

Hi @matteius, thanks for the follow up, I'll be able to check it tomorrow afternoon. I'll let you know the result!

@bjorn-verstrepen
Copy link
Author

Hi @matteius, sorry for the delay, I'm running PipEnv 2023.9.8 now and the issue is still there.

# pipenv install Flask-Limiter==2.6.2 --verbose
...
Ignoring rich: markers 'python_full_version >= "3.6.3" and python_full_version < "4.0.0"' don't match your environment
...
# pipenv run python --version
Python 3.11.0rc1
# pipenv --version
pipenv, version 2023.9.8
# pipenv graph
Flask-Limiter==2.6.2
├── Flask [required: >=2, installed: 2.3.2]
│   ├── blinker [required: >=1.6.2, installed: 1.6.2]
│   ├── click [required: >=8.1.3, installed: 8.1.7]
│   ├── itsdangerous [required: >=2.1.2, installed: 2.1.2]
│   ├── Jinja2 [required: >=3.1.2, installed: 3.1.2]
│   │   └── MarkupSafe [required: >=2.0, installed: 2.1.3]
│   └── Werkzeug [required: >=2.3.3, installed: 2.3.7]
│       └── MarkupSafe [required: >=2.1.1, installed: 2.1.3]
├── limits [required: >=2.3, installed: 3.5.0]
│   ├── deprecated [required: >=1.2, installed: 1.2.14]
│   │   └── wrapt [required: >=1.10,<2, installed: 1.15.0]
│   ├── importlib-resources [required: >=1.3, installed: 6.0.1]
│   ├── packaging [required: >=21,<24, installed: 23.1]
│   ├── setuptools [required: Any, installed: 68.1.2]
│   └── typing-extensions [required: Any, installed: 4.7.1]
├── rich [required: >=12,<13, installed: ?]
└── typing-extensions [required: Any, installed: 4.7.1]
...

@matteius
Copy link
Member

Hmmm, well this actually seems like possibly a pip bug, but with my proposal in #5935 would allow you to specify the target python version and system (basically anything in the platform dictionary) to have the resolver target that information as an override. I would be curious to hear your thoughts if you have a chance to try it out.

@bjorn-verstrepen
Copy link
Author

I'd be willing to try it out but I'm not quite sure how to use that override.

@matteius
Copy link
Member

Ah sorry, I had linked the wrong PR: #5931

You would add a section to the Pipfile named resolver, example:

[resolver]
python_full_version = "3.7.13"
python_version = "3.7"
finder_python = "3.7"
os_name = "win32"

This is a minimal patch, so it doesn't provide a way to target multiple versions -- I went down that path initially but it involves changes in the packaging markers code, and it got too complicated for a first pass.

@bjorn-verstrepen
Copy link
Author

Unfortunately still the same issue.

pip install --upgrade git+https://github.com/pypa/pipenv.git@revisit-resolver-constraints

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

[packages]
flask-limiter = "==2.6.2"

[dev-packages]

[requires]
python_version = "3.11"

[resolver]
python_full_version = "3.11.0"
python_version = "3.11"
finder_python = "3.11"
# pipenv --version
pipenv, version 2023.9.9.dev0

@lukaszkoziara
Copy link

lukaszkoziara commented Sep 20, 2023

I have the same issue (pipenv 2023.9.8): installing package with python requirement python_requires = >3.7.0 on Python 3.11.0rc1 (Ubuntu 22.04) resulted in Ignoring some-package: markers 'python_full_version >= "3.7.0"' don't match your environment.

@lukaszkoziara
Copy link

It seems that setting markers in Pipfile can workaround this issue. I've just tested something like some-package = {version = "==0.6.1", markers="python_version >= '3.11'"} and package is installed within virtualenv.

@matteius
Copy link
Member

The problem with my branch is that I suspect the lock file was adjusted correctly based on the overrides, but during install the markers get evaluated again against the actual python version/platform information. I think this may actually be a bug with how packaging (which pip vendors, and we vendor pip) handles evaluating the markers when a release candidate python is used.

@brett-ls
Copy link

brett-ls commented Sep 6, 2024

Assuming this is still just a known issue? Having a bunch of problems w/ ignored packages due to the Python 3.11.0rc1 version on ubuntu22.04.

@matteius
Copy link
Member

Pipenv Issue #5835 Analysis and Proposed Resolution

1. Problem Summary:

Pipenv silently ignores dependencies whose "python_full_version" markers don't match the current Python interpreter when using a release candidate (RC) version of Python. Specifically, python_full_version markers fail to recognize RC versions like "3.11.0rc1".

2. Comment Analysis:

  • The issue is confirmed to exist in multiple Pipenv versions, including the latest at the time.
  • A proposed fix involving a [resolver] section in Pipfile to override Python version information for resolution was attempted, but didn't resolve the issue.
  • Maintainer @matteius suggests the root cause might be how packaging (vendored by Pipenv) handles marker evaluation for RC Python versions.
  • User @brett-ls confirms the issue is still present and causing problems.

3. Proposed Resolution:

The issue stems from Pipenv using the string representation of sys.implementation.version, which for RC versions includes the "rcX" suffix, during marker evaluation. This string doesn't conform to PEP 440, which the packaging library uses for parsing and evaluating markers.

Code Changes:

Instead of using the raw string from sys.implementation.version, Pipenv should use a PEP 440 compliant version string during marker evaluation. This could be achieved by:

  1. Creating a PEP 440 compliant version string:
    • Extract the major, minor, and micro parts from sys.implementation.version using a regex.
    • Construct a new version string in the format "major.minor.micro".
  2. Using the PEP 440 version string for marker evaluation:
    • Replace the usage of python_full_version in the marker with the newly constructed version string.
    • Utilize the packaging library to evaluate the modified marker.

4. Code Snippet (in pipenv/pipenv/environment.py):

@cached_property
def python_version(self) -> str | None:
	  with self.activated() as active:
	      if active:
	          from pipenv.patched.pip._vendor.packaging.version import Version

	          version_str = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"  # Extract version parts
	          python_version = Version(version_str)  # Create PEP 440 compliant version
	          return str(python_version)  # Return the string representation
	      else:
	          return None

5. Additional Steps:

  • Testing: Thoroughly test the proposed change with various RC Python versions across different platforms.
  • Documentation: Update Pipenv's documentation to clarify how python_full_version handles RC versions.
  • Upstream Investigation: While the immediate fix is within Pipenv, it's worth investigating whether packaging could be improved to better handle non-standard version strings, especially for common cases like Python RCs. This could prevent similar issues in other tools that rely on packaging for marker evaluation.

Overall, the proposed solution aims to align Pipenv's marker evaluation with PEP 440, ensuring consistent and expected behavior with RC Python versions.

@matteius
Copy link
Member

Would be great if someone could check out the behavior of #6278 against this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants