Closed tnilanon closed 1 month ago
Changing this would be a breaking change of behavior. Also, I think it's a feature of the underline venv activate script, not so much of pipenv.
@oz123 I think the current behavior is quite counter-intuitive, but I don't know enough to give an informed opinion on this topic. When I have time (not likely anytime soon), I will dive into venv activate script to confirm your hypothesis.
I will close this issue for now.
Mark as closed
Issue description
I have
pyenv
withpython
3.11.9 installed. This "default" installation hassetuptools
==74.1.2 and I used it to create a virtual environment viapipenv
.Now inside this virtual environment (with
pipenv shell
), I'm trying to install an older version of a package. There is no binary available, sopip
tries to build it from source. This particular version of the package needssetuptools
==68.0.0, so I installed it in the virtual environment. The problem is myPYTHONPATH
ordering seems to be prioritizing the lib from the "default" installation instead of the lib from the virtual environment, so the build fails.Current python path from
sys.path
:I think the last entry there should be at the top to fix this issue.
I believe pip is using
setuptools
==74.1.2 to build (and failed) because the build process looks forsetuptools.msvc.msvc14_get_vc_env
which was presented insetuptools
==68.0.0, but not in 74.1.2.Expected result
pip
build should be able to findsetuptools
==68.0.0Actual result
AttributeError: module 'setuptools.msvc' has no attribute 'msvc14_get_vc_env'
Traceback (most recent call last): File "C:\Users\redacted-user\.virtualenvs\redacted-hashdVal\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, inSteps to replicate
pyenv
andpython
3.11.9pipenv
andsetuptools
==74.1.2setuptools
==68.0.0 and try to buildpyzmq
==23.2.0Please note that I have
auto_activate_base: false
in my.condarc
file.$ pipenv --support
Pipenv version: `'2024.0.1'` Pipenv location: `'C:\\Users\\redacted-user\\.pyenv\\pyenv-win\\versions\\3.11.9\\Lib\\site-packages\\pipenv'` Python location: `'C:\\Users\\redacted-user\\.pyenv\\pyenv-win\\versions\\3.11.9\\python.exe'` OS Name: `'nt'` User pip version: `'24.0'` user Python installations found: PEP 508 Information: ``` {'implementation_name': 'cpython', 'implementation_version': '3.11.9', 'os_name': 'nt', 'platform_machine': 'AMD64', 'platform_python_implementation': 'CPython', 'platform_release': '10', 'platform_system': 'Windows', 'platform_version': '10.0.19045', 'python_full_version': '3.11.9', 'python_version': '3.11', 'sys_platform': 'win32'} ``` System environment variables: - `ALLUSERSPROFILE` - `APPDATA` - `BINDIR` - `CMDLINE` - `COMMANDS` - `COMMONPROGRAMFILES` - `COMMONPROGRAMFILES(X86)` - `COMMONPROGRAMW6432` - `COMPUTERNAME` - `COMSPEC` - `CONDA_BAT` - `CONDA_EXE` - `CONDA_PROMPT_MODIFIER` - `CONDA_SHLVL` - `DRIVERDATA` - `EXTRAPATHS` - `HOMEDRIVE` - `HOMEPATH` - `LOCALAPPDATA` - `LOGONSERVER` - `NUMBER_OF_PROCESSORS` - `NVM_HOME` - `NVM_SYMLINK` - `ONEDRIVE` - `ONEDRIVECOMMERCIAL` - `OS` - `PATH` - `PATHEXT` - `PIPENV_ACTIVE` - `PIPENV_SHELL` - `PIP_DISABLE_PIP_VERSION_CHECK` - `PIP_PYTHON_PATH` - `POSH_CURSOR_COLUMN` - `POSH_CURSOR_LINE` - `POSH_INSTALLER` - `POSH_PID` - `POSH_SHELL_VERSION` - `POSH_THEME` - `POSH_THEMES_PATH` - `POWERLINE_COMMAND` - `POWERSHELL_DISTRIBUTION_CHANNEL` - `POWERSHELL_UPDATECHECK` - `PROCESSOR_ARCHITECTURE` - `PROCESSOR_IDENTIFIER` - `PROCESSOR_LEVEL` - `PROCESSOR_REVISION` - `PROGRAMDATA` - `PROGRAMFILES` - `PROGRAMFILES(X86)` - `PROGRAMW6432` - `PROMPT` - `PSMODULEPATH` - `PUBLIC` - `PYENV` - `PYENV_HOME` - `PYENV_ROOT` - `PYTHONDONTWRITEBYTECODE` - `PYTHON_SHIMS` - `SESSIONNAME` - `SKIP` - `SYSTEMDRIVE` - `SYSTEMROOT` - `TEMP` - `TMP` - `UATDATA` - `USERDNSDOMAIN` - `USERDOMAIN` - `USERDOMAIN_ROAMINGPROFILE` - `USERNAME` - `USERPROFILE` - `VIRTUAL_ENV` - `WINDIR` - `WSLENV` - `WT_PROFILE_ID` - `WT_SESSION` - `ZES_ENABLE_SYSMAN` - `_CONDA_EXE` - `_CONDA_ROOT` - `_PATH` - `PYTHONFINDER_IGNORE_UNSUPPORTED` Pipenv–specific environment variables: - `PIPENV_ACTIVE`: `1` - `PIPENV_SHELL`: `pwsh` Debug–specific environment variables: - `PATH`: `C:\Users\redacted-user\.pyenv\pyenv-win\versions\3.9.13;C:\Users\redacted-user\.pyenv\pyenv-win\versions\3.8.10;C:\Users\redacted-user\.pyenv\pyenv-win\versions\3.7.9;C:\Users\redacted-user\.pyenv\pyenv-win\versions\3.11.9;C:\Users\redacted-user\.pyenv\pyenv-win\versions\3.11.7;C:\Program Files\PowerShell\7;C:\Users\redacted-user\.virtualenvs\redacted-hashdVal\Scripts;C:\Users\redacted-user\.pyenv\pyenv-win\versions\3.11.9;C:\Users\redacted-user\.pyenv\pyenv-win\versions\3.11.9\Scripts;C:\Users\redacted-user\AppData\Roaming\Python\Python311\Scripts;C:\Users\redacted-user\Anaconda3\condabin;C:\Program Files\PowerShell\7;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Azure Data Studio\bin;C:\Program Files\dotnet\;C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin;C:\Program Files (x86)\Microsoft SQL Server\160\DTS\Binn\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Users\redacted-user\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Program Files\Docker\Docker\resources\bin;C:\Program Files\Git\cmd;C:\Program Files\PowerShell\7\;C:\Users\redacted-user\.pyenv\pyenv-win\bin;C:\Users\redacted-user\AppData\Local\Microsoft\WindowsApps;C:\Users\redacted-user\AppData\Local\Microsoft\WinGet\Packages\Databricks.DatabricksCLI_Microsoft.Winget.Source_8wekyb3d8bbwe;C:\Users\redacted-user\AppData\Local\Programs\Git\cmd;C:\Users\redacted-user\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\redacted-user\AppData\Roaming\nvm;C:\Users\redacted-user\.dotnet\tools;C:\Program Files\nodejs;C:\Program Files\qpdf 11.6.3\bin;C:\Users\redacted-user\AppData\Local\Programs\oh-my-posh\bin;C:\Users\redacted-user\.dotnet\tools;` - `VIRTUAL_ENV`: `C:\Users\redacted-user\.virtualenvs\redacted-hashdVal` --------------------------- Contents of `Pipfile` ('C:\\Users\\redacted-user\\codes\\redacted\\Pipfile'): ```toml [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] absl-py = "==1.0.0" accelerate = "==0.31.0" aiohttp = "==3.8.5" aiohttp-cors = "==0.7.0" aiosignal = "==1.2.0" anyio = "==3.5.0" argon2-cffi = "==21.3.0" argon2-cffi-bindings = "==21.2.0" astor = "==0.8.1" asttokens = "==2.0.5" astunparse = "==1.6.3" async-timeout = "==4.0.2" attrs = "==22.1.0" audioread = "==3.0.1" azure-core = "==1.30.2" azure-cosmos = "==4.3.1" azure-identity = "==1.17.1" azure-storage-blob = "==12.19.1" azure-storage-file-datalake = "==12.14.0" backcall = "==0.2.0" bcrypt = "==3.2.0" beautifulsoup4 = "==4.12.2" black = "==23.3.0" bleach = "==4.1.0" blinker = "==1.4" blis = "==0.7.11" boto3 = "==1.34.39" botocore = "==1.34.39" brotli = "==1.0.9" cachetools = "==5.4.0" catalogue = "==2.0.10" category-encoders = "==2.6.3" certifi = "==2023.7.22" cffi = "==1.15.1" chardet = "==4.0.0" charset-normalizer = "==2.0.4" circuitbreaker = "==1.4.0" click = "==8.0.4" cloudpathlib = "==0.16.0" cloudpickle = "==2.2.1" cmdstanpy = "==1.2.2" colorful = "==0.5.6" comm = "==0.1.2" confection = "==0.1.4" configparser = "==5.2.0" contourpy = "==1.0.5" cryptography = "==41.0.3" cycler = "==0.11.0" cymem = "==2.0.8" cython = "==0.29.32" dacite = "==1.8.1" databricks-automl-runtime = "==0.2.21" databricks-feature-engineering = "==0.6.0" databricks-sdk = "==0.20.0" dataclasses-json = "==0.6.7" datasets = "==2.19.1" dbl-tempo = "==0.1.26" dbus-python = "==1.2.18" debugpy = "==1.6.7" decorator = "==5.1.1" deepspeed = "==0.14.4" defusedxml = "==0.7.1" deprecated = "==1.2.14" dill = "==0.3.6" diskcache = "==5.6.3" distlib = "==0.3.8" dm-tree = "==0.1.8" entrypoints = "==0.4" evaluate = "==0.4.2" executing = "==0.8.3" facets-overview = "==1.1.1" farama-notifications = "==0.0.4" fastjsonschema = "==2.20.0" fasttext = "==0.9.2" filelock = "==3.13.4" flask = "==2.2.5" flatbuffers = "==24.3.25" fonttools = "==4.25.0" frozenlist = "==1.3.3" fsspec = "==2023.5.0" future = "==0.18.3" gast = "==0.4.0" gitdb = "==4.0.11" gitpython = "==3.1.27" google-api-core = "==2.18.0" google-auth = "==2.21.0" google-auth-oauthlib = "==1.0.0" google-cloud-core = "==2.4.1" google-cloud-storage = "==2.10.0" google-crc32c = "==1.5.0" google-pasta = "==0.2.0" google-resumable-media = "==2.7.1" googleapis-common-protos = "==1.63.0" greenlet = "==2.0.1" grpcio = "==1.60.0" grpcio-status = "==1.60.0" gunicorn = "==20.1.0" gviz-api = "==1.10.0" gymnasium = "==0.28.1" h11 = "==0.14.0" h5py = "==3.10.0" hjson = "==3.1.0" holidays = "==0.45" horovod = "==0.28.1+db1" htmlmin = "==0.1.12" httpcore = "==1.0.5" httplib2 = "==0.20.2" httpx = "==0.27.0" huggingface-hub = "==0.23.4" idna = "==3.4" imagehash = "==4.3.1" imageio = "==2.31.1" imbalanced-learn = "==0.11.0" importlib-metadata = "==6.0.0" importlib-resources = "==6.4.0" ipyflow-core = "==0.0.198" ipykernel = "==6.25.1" ipython = "==8.15.0" ipython-genutils = "==0.2.0" ipywidgets = "==7.7.2" isodate = "==0.6.1" itsdangerous = "==2.0.1" jax-jumpy = "==1.0.0" jedi = "==0.18.1" jeepney = "==0.7.1" jinja2 = "==3.1.2" jmespath = "==0.10.0" joblib = "==1.2.0" joblibspark = "==0.5.1" jsonpatch = "==1.33" jsonpointer = "==3.0.0" jsonschema = "==4.17.3" jupyter-server = "==1.23.4" jupyter-client = "==7.4.9" jupyter-core = "==5.3.0" jupyterlab-pygments = "==0.1.2" keras = "==3.2.1" keyring = "==23.5.0" kiwisolver = "==1.4.4" langchain = "==0.1.20" langchain-community = "==0.0.38" langchain-core = "==0.1.52" langchain-text-splitters = "==0.0.2" langcodes = "==3.4.0" langsmith = "==0.1.63" language-data = "==1.2.0" launchpadlib = "==1.10.16" "lazr.restfulclient" = "==0.14.4" "lazr.uri" = "==1.0.6" lazy-loader = "==0.2" libclang = "==15.0.6.1" librosa = "==0.10.1" lightgbm = "==4.3.0" linkify-it-py = "==2.0.0" llvmlite = "==0.40.0" lxml = "==4.9.2" lz4 = "==4.3.2" mako = "==1.2.0" marisa-trie = "==1.1.1" markdown = "==3.4.1" markdown-it-py = "==2.2.0" markupsafe = "==2.1.1" marshmallow = "==3.21.2" matplotlib = "==3.7.2" matplotlib-inline = "==0.1.6" mdit-py-plugins = "==0.3.0" mdurl = "==0.1.0" memray = "==1.13.3" mistune = "==0.8.4" ml-dtypes = "==0.3.2" mlflow-skinny = "==2.13.1" more-itertools = "==8.10.0" mosaicml-streaming = "==0.7.4" mpmath = "==1.3.0" msal = "==1.29.0" msal-extensions = "==1.2.0" msgpack = "==1.0.8" multidict = "==6.0.2" multimethod = "==1.12" multiprocess = "==0.70.14" murmurhash = "==1.0.10" mypy-extensions = "==0.4.3" namex = "==0.0.8" nbclassic = "==0.5.5" nbclient = "==0.5.13" nbconvert = "==6.5.4" nbformat = "==5.7.0" nest-asyncio = "==1.5.6" networkx = "==3.1" ninja = "==1.11.1.1" nltk = "==3.8.1" notebook = "==6.5.4" notebook-shim = "==0.2.2" numba = "==0.57.1" numpy = "==1.23.5" nvidia-ml-py = "==12.555.43" oauthlib = "==3.2.0" oci = "==2.126.4" openai = "==1.35.3" opencensus = "==0.11.4" opencensus-context = "==0.1.3" opentelemetry-api = "==1.25.0" opentelemetry-sdk = "==1.25.0" opentelemetry-semantic-conventions = "==0.46b0" opt-einsum = "==3.3.0" optree = "==0.12.1" orjson = "==3.10.6" packaging = "==23.2" pandas = "==1.5.3" pandocfilters = "==1.5.0" paramiko = "==3.4.0" parso = "==0.8.3" pathspec = "==0.10.3" patsy = "==0.5.3" petastorm = "==0.12.1" pexpect = "==4.8.0" phik = "==0.12.4" pickleshare = "==0.7.5" pillow = "==9.4.0" platformdirs = "==3.10.0" plotly = "==5.9.0" pmdarima = "==2.0.4" pooch = "==1.8.1" portalocker = "==2.10.1" preshed = "==3.0.9" prometheus-client = "==0.14.1" prompt-toolkit = "==3.0.36" prophet = "==1.1.5" proto-plus = "==1.24.0" protobuf = "==4.24.1" psutil = "==5.9.0" psycopg2 = "==2.9.3" ptyprocess = "==0.7.0" pure-eval = "==0.2.2" py-cpuinfo = "==8.0.0" py-spy = "==0.3.14" pyarrow = "==14.0.1" pyarrow-hotfix = "==0.6" pyasn1 = "==0.4.8" pyasn1-modules = "==0.2.8" pybind11 = "==2.13.1" pyccolo = "==0.0.52" pycparser = "==2.21" pydantic = "==1.10.6" pygments = "==2.15.1" pygobject = "==3.42.1" pyjwt = "==2.3.0" pynacl = "==1.5.0" pyodbc = "==4.0.38" pyopenssl = "==23.2.0" pyparsing = "==3.0.9" pyrsistent = "==0.18.0" pytesseract = "==0.3.10" python-dateutil = "==2.8.2" python-editor = "==1.0.4" python-lsp-jsonrpc = "==1.1.1" python-snappy = "==0.6.1" pytz = "==2022.7" pywavelets = "==1.4.1" pyyaml = "==6.0" pyzmq = "==23.2.0" ray = "==2.20.0" regex = "==2022.7.9" requests = "==2.31.0" requests-oauthlib = "==1.3.1" rich = "==13.7.1" rsa = "==4.9" s3transfer = "==0.10.2" safetensors = "==0.4.2" scikit-image = "==0.20.0" scikit-learn = "==1.3.0" scipy = "==1.11.1" seaborn = "==0.12.2" secretstorage = "==3.3.1" send2trash = "==1.8.0" sentence-transformers = "==2.7.0" sentencepiece = "==0.1.99" shap = "==0.44.0" simplejson = "==3.17.6" six = "==1.16.0" slicer = "==0.0.7" smart-open = "==5.2.1" smmap = "==5.0.0" sniffio = "==1.2.0" soundfile = "==0.12.1" soupsieve = "==2.4" soxr = "==0.3.7" spacy = "==3.7.2" spacy-legacy = "==3.0.12" spacy-loggers = "==1.0.5" spark-tensorflow-distributor = "==1.0.0" sqlalchemy = "==1.4.39" sqlparse = "==0.4.2" srsly = "==2.4.8" ssh-import-id = "==5.11" stack-data = "==0.2.0" stanio = "==0.5.1" statsmodels = "==0.14.0" sympy = "==1.11.1" tangled-up-in-unicode = "==0.2.0" tenacity = "==8.2.2" tensorboard = "==2.16.2" tensorboard-data-server = "==0.7.2" tensorboard-plugin-profile = "==2.15.1" tensorboardx = "==2.6.2.2" tensorflow = "==2.16.1" tensorflow-estimator = "==2.15.0" tensorflow-io-gcs-filesystem = "==0.37.1" termcolor = "==2.4.0" terminado = "==0.17.1" textual = "==0.63.3" tf-keras = "==2.16.0" thinc = "==8.2.3" threadpoolctl = "==2.2.0" tifffile = "==2021.7.2" tiktoken = "==0.5.2" tinycss2 = "==1.2.1" tokenize-rt = "==4.2.1" tokenizers = "==0.19.0" torch = "==2.3.1" torcheval = "==0.0.7" torchvision = "==0.18.1" tornado = "==6.3.2" tqdm = "==4.65.0" traitlets = "==5.7.1" transformers = "==4.41.2" typeguard = "==2.13.3" typer = "==0.9.4" typing-inspect = "==0.9.0" typing-extensions = "==4.10.0" tzdata = "==2022.1" uc-micro-py = "==1.0.1" ujson = "==5.4.0" urllib3 = "==1.26.16" virtualenv = "==20.24.2" visions = "==0.7.5" wadllib = "==1.3.6" wasabi = "==1.1.2" wcwidth = "==0.2.5" weasel = "==0.3.4" webencodings = "==0.5.1" websocket-client = "==0.58.0" werkzeug = "==2.2.3" wordcloud = "==1.9.3" wrapt = "==1.14.1" xgboost = "==2.0.3" xxhash = "==3.4.1" yarl = "==1.8.1" ydata-profiling = "==4.5.1" zipp = "==3.11.0" zstd = "==1.5.5.1" [dev-packages] [requires] python_version = "3.11" ```