pipenv icon indicating copy to clipboard operation
pipenv copied to clipboard

FileNotFoundError: [Errno 2] when installing pipenv from pipfile

Open limkin092 opened this issue 2 years ago • 53 comments

Hi all,

I am experiencing some issues while building my docker file on the last shown step (1):

COPY Pipfile* ./
RUN pip3 install pipenv
(1) RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy --clear --keep-outdated.

I get the following Stacktrace:

 > [builder-image 5/5] RUN pipenv install --deploy --clear --keep-outdated:                                                                                                                                                    
#10 1.527 Creating a virtualenv for this project...                                                                                                                                                                            
#10 1.527 Pipfile: /Pipfile                                                                                                                                                                                                    
#10 1.543 Using /usr/bin/python3 (3.10.4) to create virtualenv...                                                                                                                                                              
⠼ Creating virtual environment...created virtual environment CPython3.10.4.final.0-64 in 491ms                                                                                                                                 
#10 2.680   creator CPython3Posix(dest=/.venv, clear=False, no_vcs_ignore=False, global=False)
#10 2.680   seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv)
#10 2.680     added seed packages: pip==22.0.4, setuptools==62.1.0, wheel==0.37.1
#10 2.680   activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
#10 2.680 
#10 2.758✔ Successfully created virtual environment! 
#10 2.760 Traceback (most recent call last):
#10 2.760   File "/usr/local/bin/pipenv", line 8, in <module>
#10 2.760     sys.exit(cli())
#10 2.760   File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 1128, in __call__
#10 2.761     return self.main(*args, **kwargs)
#10 2.761   File "/usr/local/lib/python3.10/dist-packages/pipenv/cli/options.py", line 56, in main
#10 2.761     return super().main(*args, **kwargs, windows_expand_args=False)
#10 2.761   File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 1053, in main
#10 2.761     rv = self.invoke(ctx)
#10 2.761   File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 1659, in invoke
#10 2.762     return _process_result(sub_ctx.command.invoke(sub_ctx))
#10 2.764   File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 1395, in invoke
#10 2.765     return ctx.invoke(self.callback, **ctx.params)
#10 2.765   File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 754, in invoke
#10 2.765     return __callback(*args, **kwargs)
#10 2.766   File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
#10 2.766     return ctx.invoke(f, obj, *args, **kwargs)
#10 2.766   File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 754, in invoke
#10 2.767     return __callback(*args, **kwargs)
#10 2.767   File "/usr/local/lib/python3.10/dist-packages/pipenv/cli/command.py", line 222, in install
#10 2.767     do_install(
#10 2.767   File "/usr/local/lib/python3.10/dist-packages/pipenv/core.py", line 1964, in do_install
#10 2.768     ensure_project(
#10 2.768   File "/usr/local/lib/python3.10/dist-packages/pipenv/core.py", line 552, in ensure_project
#10 2.770     ensure_virtualenv(
#10 2.770   File "/usr/local/lib/python3.10/dist-packages/pipenv/core.py", line 485, in ensure_virtualenv
#10 2.770     do_create_virtualenv(
#10 2.770   File "/usr/local/lib/python3.10/dist-packages/pipenv/core.py", line 1012, in do_create_virtualenv
#10 2.771     project._environment = Environment(
#10 2.772   File "/usr/local/lib/python3.10/dist-packages/pipenv/environment.py", line 70, in __init__
#10 2.772     self._base_paths = self.get_paths()
#10 2.773   File "/usr/local/lib/python3.10/dist-packages/pipenv/environment.py", line 394, in get_paths
#10 2.774     c = subprocess_run(command)
#10 2.774   File "/usr/local/lib/python3.10/dist-packages/pipenv/utils/processes.py", line 75, in subprocess_run
#10 2.774     return subprocess.run(
#10 2.775   File "/usr/lib/python3.10/subprocess.py", line 501, in run
#10 2.775     with Popen(*popenargs, **kwargs) as process:
#10 2.775   File "/usr/lib/python3.10/subprocess.py", line 966, in __init__
#10 2.776     self._execute_child(args, executable, preexec_fn, close_fds,
#10 2.778   File "/usr/lib/python3.10/subprocess.py", line 1842, in _execute_child
#10 2.778     raise child_exception_type(errno_num, err_msg, err_filename)
#10 2.778 FileNotFoundError: [Errno 2] No such file or directory: '/.venv/bin/python'
------
executor failed running [/bin/sh -c pipenv install --deploy --clear --keep-outdated]: exit code: 1

The solution I found is:

COPY Pipfile* ./
RUN pip3 install pipenv==v2022.4.20
RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy --clear --keep-outdated

The build image is ubuntu:22.04, python-version 3.10.4

limkin092 avatar Apr 22 '22 20:04 limkin092

I don't think there should be a v in front of your version for 2022.4.20 on the solution line RUN pip3 install pipenv==v2022.4.20 -- not sure how that could work. That being said, @limkin092 are you saying your Dockerfile works on 2022.4.20 and no ton 2022.4.21?

matteius avatar Apr 22 '22 21:04 matteius

I am having the same issue on the new Ubuntu 22.04 but not the previous 21.10.

I do not understand the problem but I have identified a workaround: pip uninstall -y setuptools seems to allow pipenv to run.

I can reproduce the issue without pipenv. Something about the act of installing the setuptools dependency specified in pipenv’s setup.py breaks virtualenv creation on Ubuntu 22.04; no bin dir gets created.

FROM ubuntu:22.04

RUN apt update \
    && DEBIAN_FRONTEND=noninteractive apt install -y python3-pip \
    && rm -rf /var/lib/apt/lists

RUN adduser  user1

USER user1
WORKDIR /home/user1

RUN pip install --user virtualenv 'setuptools>=60.0.0'
RUN python3 -m virtualenv foo && foo/bin/python3 --version

fails with /bin/sh: 1: foo/bin/python3: not found

andrewdotn avatar Apr 23 '22 05:04 andrewdotn

same problem: pipenv: version 2022.4.21 Ubuntu 22.04 LTS Python 3.10.4

pipenv install requests
/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py:123: PkgResourcesDeprecationWarning: 1.16.0-unknown is an invalid version and will not be supported in a future release
  warnings.warn(
/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py:123: PkgResourcesDeprecationWarning: 1.1build1 is an invalid version and will not be supported in a future release
  warnings.warn(
/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py:123: PkgResourcesDeprecationWarning: 0.1.43ubuntu1 is an invalid version and will not be supported in a future release
  warnings.warn(
Creating a virtualenv for this project...
Pipfile: /home/ubuntu/Downloads/Pipfile
Using /usr/bin/python3 (3.10.4) to create virtualenv...
⠧ Creating virtual environment...created virtual environment CPython3.10.4.final.0-64 in 185ms
  creator CPython3Posix(dest=/home/ubuntu/.local/share/virtualenvs/Downloads-UJGff8HK, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/ubuntu/.local/share/virtualenv)
    added seed packages: pip==22.0.4, setuptools==62.1.0, wheel==0.37.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment! 
Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 8, in <module>
    sys.exit(cli())
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/cli/options.py", line 56, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/cli/command.py", line 222, in install
    do_install(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/core.py", line 1964, in do_install
    ensure_project(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/core.py", line 552, in ensure_project
    ensure_virtualenv(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/core.py", line 485, in ensure_virtualenv
    do_create_virtualenv(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/core.py", line 1012, in do_create_virtualenv
    project._environment = Environment(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/environment.py", line 70, in __init__
    self._base_paths = self.get_paths()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/environment.py", line 394, in get_paths
    c = subprocess_run(command)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/pipenv/utils/processes.py", line 75, in subprocess_run
    return subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.10/subprocess.py", line 966, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.10/subprocess.py", line 1842, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/home/ubuntu/.local/share/virtualenvs/Downloads-UJGff8HK/bin/python'

what is see is virtualenv create complete other structure without bin

ls /home/ubuntu/.local/share/virtualenvs/Downloads-UJGff8HK/
lib  local  pyvenv.cfg

kojibhy avatar Apr 23 '22 11:04 kojibhy

This happens with setuptools>=60 on Ubuntu 22.04 with Python 3.10.4 but not on Ubuntu 20.04 with Python 3.8.10/3.9.5.

Downgrading setuptools to before version 60 works around the problem. Ubuntu 22.04 comes with version 59.6.0 but pipenv 2022.4.21 wants setuptools>=60.0.0.

nomis avatar Apr 23 '22 11:04 nomis

The (excellent!) bug report at https://github.com/pypa/setuptools/issues/3278 identifies the cause more precisely.

There are two better workarounds identified there:

  • Set the environment variable SETUPTOOLS_USE_DISTUTILS=stdlib when running pipenv.
  • Or change the default setting in a file with sed -i.bak -e "s/var, 'local'/var, 'stdlib'/" ~/.local/lib/python3.10/site-packages/distutils-precedence.pth

andrewdotn avatar Apr 23 '22 12:04 andrewdotn

@andrewdotn this worked for me :) @matteius yes, from one day to other it did not work...

limkin092 avatar Apr 23 '22 16:04 limkin092

@andrewdotn the SETUPTOOLS_USE_DISTUTILS=stdlib also worked for me.

felipecrp avatar Apr 25 '22 00:04 felipecrp

@oz123 I am wondering what could have been different between 2022.4.20 and 2022.4.21 that might have caused this?

matteius avatar Apr 25 '22 02:04 matteius

Ah I forgot that I updated the minimum version of pip and setuptools when I dropped 3.6 support -- I think I based it on the versions that had dropped 3.6 support of those projects: https://github.com/pypa/pipenv/pull/5066/files#diff-60f61ab7a8d1910d86d9fda2261620314edcae5894d5aaa236b821c7256badd7R26

matteius avatar Apr 25 '22 21:04 matteius

@andrewdotn I had to export in order for it to work:

export SETUPTOOLS_USE_DISTUTILS=stdlib

epomatti avatar Apr 26 '22 23:04 epomatti

I would like some guidance on what the proper resolution would be for pipenv -- should we loosen the versions of setuptools in the setup.py? I am not convinced that we should allow such older versions of pip since we vendor in the latest pip, (I also thought we only used the pip internal to pipenv, and the fact that we use both I find troubling), anyway I am glad there is some work arounds, but I'd like to understand the path forward for this pipenv issue as well.

matteius avatar Apr 27 '22 18:04 matteius

I don't think the version of pip affects this?

When the setuptools/virtualenv/distutils bug is resolved then pipenv can depend on the newer version of those.

The difference between 2022.4.20 and 2022.4.21 is that it requires setuptools>=60 which has this problem. Ubuntu 22.04 was also released around the same time.

nomis avatar Apr 27 '22 21:04 nomis

@andrewdotn trying to get rid of this warning: /home/danka/.local/lib/python3.10/site-packages/pkg_resources/__init__.py:123: PkgResourcesDeprecationWarning: 1.1build1 is an invalid version and will not be supported in a future release But the workaround you mentioned didn't solve it. Any ideas what's the issue here?

  • python 3.10.4
  • pip 22.0.4
  • pipenv, version 2022.4.21

emmmhx avatar Apr 28 '22 12:04 emmmhx

@emmmhx The deprecation warning shouldn't be causing an actual error ... is that 1.1build1 coming from your own package?

@nomis Ok sounds like a plan to open setuptools back up to the prior specifier.

matteius avatar Apr 28 '22 12:04 matteius

@matteius This warning appears every time I run pipenv in terminal.

emmmhx avatar Apr 28 '22 12:04 emmmhx

I also have these warnings every time I run pipenv. Although the command works, the warnings are undesired.

I'm using unto 22.04 with WSL2.

felipecrp avatar Apr 28 '22 12:04 felipecrp

Can someone try this branch and see downgrading the setuptools specifier is enough? https://github.com/pypa/pipenv/pull/5087

matteius avatar Apr 28 '22 12:04 matteius

@matteius Sure. I tested but it did not solve the problem.

I did the following commands:

$ pip uninstall pipenv
$ pip install "git+https://github.com/pypa/pipenv.git@issue-5075-setuptools"

Then, tried to create the env:

$ pipenv install

The result was:

/home/user/.local/lib/python3.10/site-packages/pkg_resources/__init__.py:123: PkgResourcesDeprecationWarning: 0.1.43ubuntu1 is an invalid version and will not be supported in a future release
  warnings.warn(
/home/user/.local/lib/python3.10/site-packages/pkg_resources/__init__.py:123: PkgResourcesDeprecationWarning: 1.1build1 is an invalid version and will not be supported in a future release
  warnings.warn(
Creating a virtualenv for this project...
Pipfile: /home/user/tmp/Pipfile
Using /usr/bin/python3 (3.10.4) to create virtualenv...
⠙ Creating virtual environment...created virtual environment CPython3.10.4.final.0-64 in 403ms
  creator CPython3Posix(dest=/home/user/.local/share/virtualenvs/tmp-K1LwcDUA, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/user/.local/share/virtualenv)
    added seed packages: pip==22.0.4, setuptools==62.1.0, wheel==0.37.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment!
Traceback (most recent call last):
  File "/home/user/.local/bin/pipenv", line 8, in <module>
    sys.exit(cli())
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/cli/options.py", line 56, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/cli/command.py", line 222, in install
    do_install(
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/core.py", line 1965, in do_install
    ensure_project(
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/core.py", line 553, in ensure_project
    ensure_virtualenv(
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/core.py", line 486, in ensure_virtualenv
    do_create_virtualenv(
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/core.py", line 1013, in do_create_virtualenv
    project._environment = Environment(
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/environment.py", line 70, in __init__
    self._base_paths = self.get_paths()
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/environment.py", line 394, in get_paths
    c = subprocess_run(command)
  File "/home/user/.local/lib/python3.10/site-packages/pipenv/utils/processes.py", line 75, in subprocess_run
    return subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.10/subprocess.py", line 966, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.10/subprocess.py", line 1842, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/.local/share/virtualenvs/tmp-K1LwcDUA/bin/python'

felipecrp avatar Apr 28 '22 17:04 felipecrp

@matteius Yup, that branch works for me when I change the pip install line in my test Dockerfile to @felipecrp’s pip install "git+https://github.com/pypa/pipenv.git@issue-5075-setuptools", and include a required apt install -y git.

@felipecrp Did you try that command on a fresh machine? Or maybe after first uninstalling setuptools? Installing just the updated pipenv in an environment that was already experiencing this issue won’t automatically downgrade or remove an updated setuptools.

andrewdotn avatar Apr 28 '22 19:04 andrewdotn

@andrewdotn @matteius If I uninstall setuptools, it works, but I still get the warnings.

$ pip uninstall pipenv
$ pip uninstall setuptools
$ pip install "git+https://github.com/pypa/pipenv.git@issue-5075-setuptools"
$ pipenv install

The command successfully creates the env, but still with some warnings.

/usr/lib/python3/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: 0.1.43ubuntu1 is an invalid version and will not be supported in a future release
  warnings.warn(
/usr/lib/python3/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: 1.1build1 is an invalid version and will not be supported in a future release
  warnings.warn(
Creating a virtualenv for this project...
Pipfile: /home/user/tmp/Pipfile
Using /usr/bin/python3 (3.10.4) to create virtualenv...
⠸ Creating virtual environment...created virtual environment CPython3.10.4.final.0-64 in 202ms
  creator CPython3Posix(dest=/home/user/.local/share/virtualenvs/tmp-K1LwcDUA, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/user/.local/share/virtualenv)
    added seed packages: pip==22.0.4, setuptools==62.1.0, wheel==0.37.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment!
Virtualenv location: /home/user/.local/share/virtualenvs/tmp-K1LwcDUA
Creating a Pipfile for this project...
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Updated Pipfile.lock (e4eef2)!
Installing dependencies from Pipfile.lock (e4eef2)...
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

felipecrp avatar Apr 28 '22 22:04 felipecrp

Those warnings are nothing to do with pipenv.

They're coming from pkg_resources and would need to be reported to Ubuntu, but this warning has been present for several Ubuntu LTS releases now.

nomis avatar Apr 28 '22 22:04 nomis

I don't know but I only see them when I run pipenv.

felipecrp avatar Apr 28 '22 22:04 felipecrp

@felipecrp its definitely been reported before the new versions about the warnings for pkg_resources. Here is an example, and there are a couple more if you search the closed issues: https://github.com/pypa/pipenv/issues/4960

matteius avatar Apr 28 '22 23:04 matteius

I believe that the pull request solves this issue. Thank you all for the help!

felipecrp avatar Apr 29 '22 01:04 felipecrp

@andrewdotn I had to export in order for it to work:

export SETUPTOOLS_USE_DISTUTILS=stdlib

This worked for me as well.

System Information:

Python

Python 3.10.4
pipenv, version 2022.4.20

Kernel

Linux cj-Z 5.15.0-25-generic #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Ubuntu:

Distributor ID: Ubuntu
Description:    Ubuntu 22.04 LTS
Release:        22.04
Codename:       jammy

cdesch avatar Apr 29 '22 13:04 cdesch

For those mortals here who are still confused and questioning--"what commands do I run to fix this..." which was definitely not moi, try,

pip install --upgrade --user setuptools==58.3.0

simurgh9 avatar May 07 '22 07:05 simurgh9

Bump ino this error on Ubuntu 22.04 Python 3.10.4 even after export SETUPTOOLS_USE_DISTUTILS=stdlib and upgraded setuptools.

$ pip install --upgrade --user setuptools
Requirement already satisfied: setuptools in /home/khteh/.local/lib/python3.10/site-packages (61.0.0)
Collecting setuptools
  Downloading setuptools-62.2.0-py3-none-any.whl (1.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 17.8 MB/s eta 0:00:00
Installing collected packages: setuptools
  Attempting uninstall: setuptools
    Found existing installation: setuptools 61.0.0
    Uninstalling setuptools-61.0.0:
      Successfully uninstalled setuptools-61.0.0
Successfully installed setuptools-62.2.0
$ pipenv install
/home/khteh/.local/lib/python3.10/site-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: 1.1build1 is an invalid version and will not be supported in a future release
  warnings.warn(
/home/khteh/.local/lib/python3.10/site-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: 0.1.43ubuntu1 is an invalid version and will not be supported in a future release
  warnings.warn(
Installing dependencies from Pipfile.lock (cb1e45)...
Traceback (most recent call last):
  File "/home/khteh/.local/bin/pipenv", line 8, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/pipenv/cli/options.py", line 56, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
  File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/pipenv/vendor/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/pipenv/cli/command.py", line 222, in install
    do_install(
  File "/usr/local/lib/python3.10/dist-packages/pipenv/core.py", line 2091, in do_install
    do_init(
  File "/usr/local/lib/python3.10/dist-packages/pipenv/core.py", line 1335, in do_init
    do_install_dependencies(
  File "/usr/local/lib/python3.10/dist-packages/pipenv/core.py", line 870, in do_install_dependencies
    batch_install(
  File "/usr/local/lib/python3.10/dist-packages/pipenv/core.py", line 728, in batch_install
    deps_to_install = [
  File "/usr/local/lib/python3.10/dist-packages/pipenv/core.py", line 729, in <listcomp>
    dep for dep in deps_to_install if not project.environment.is_satisfied(dep)
  File "/usr/local/lib/python3.10/dist-packages/pipenv/project.py", line 319, in environment
    self._environment = self.get_environment(allow_global=allow_global)
  File "/usr/local/lib/python3.10/dist-packages/pipenv/project.py", line 299, in get_environment
    environment = Environment(
  File "/usr/local/lib/python3.10/dist-packages/pipenv/environment.py", line 70, in __init__
    self._base_paths = self.get_paths()
  File "/usr/local/lib/python3.10/dist-packages/pipenv/environment.py", line 394, in get_paths
    c = subprocess_run(command)
  File "/usr/local/lib/python3.10/dist-packages/pipenv/utils/processes.py", line 75, in subprocess_run
    return subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.10/subprocess.py", line 966, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.10/subprocess.py", line 1842, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/home/khteh/.local/share/virtualenvs/PythonRestAPI-JI5RzKtM/bin/python'

Why is this closed?

/open

khteh avatar May 13 '22 08:05 khteh

@khteh I can’t reproduce that, are you able to provide a script that does so in a fresh container or VM? The following Dockerfile works for me and uses the latest ubuntu, Python, pipenv==2022.5.2, and setuptools==62.2.0:

FROM ubuntu:22.04

RUN apt update \
    && DEBIAN_FRONTEND=noninteractive apt install -y python3-pip git \
    && rm -rf /var/lib/apt/lists

RUN adduser  user1

USER user1
WORKDIR /home/user1

RUN pip install --user pipenv
RUN pip install -U --user setuptools==62.2.0
RUN touch Pipfile && SETUPTOOLS_USE_DISTUTILS=stdlib python3 -m pipenv install
RUN python3 -m pipenv run which python && python3 -m pipenv run python --version

andrewdotn avatar May 13 '22 12:05 andrewdotn

Hi there. Thank you very much for the suggested solution. I'm a big fan of pipenv for professional management of virtual environments, and I had to switch to poetry for a while, which was a pretty awful experience :-)

Ok, what now

I've tried @andrewdotn 's recipe:

sed -i.bak -e "s/var, 'local'/var, 'stdlib'/" ~/.local/lib/python3.10/site-packages/distutils-precedence.pth

after this pipenv works fine, but I get warning message before any command is done:

~ $ pipenv --version
/home/master/.local/lib/python3.10/site-packages/pkg_resources/__init__.py:123: PkgResourcesDeprecationWarning: 0.1.43ubuntu1 is an invalid version and will not be supported in a future release
  warnings.warn(
pipenv, version 2022.5.2

My package versions:

setuptools             62.3.2
pip                    22.1
pipenv                 2022.5.2

OS: Pop!_OS 22.04 (based on Ubuntu 22.04) Python: 3.10.4

I didn't quite understand from the correspondence whether the issue was solved. If issue is solved, please let me know how it can be fixed locally.

Thanks!

ghost avatar May 19 '22 23:05 ghost

@alterclaw what happens if you pin your version of pip to 22.0.4?

matteius avatar May 19 '22 23:05 matteius