使用Pipenv创建虚拟环境时遭遇FileNotFoundError报错
Pipenv无法正常工作
在WSL shell中使用pipenv时遇到问题,之前一直正常使用,今天突然无法运行。已尝试卸载并重新安装pipenv,但问题仍未解决。
执行的命令:
pipenv install django
错误输出:
/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py:123: PkgResourcesDeprecationWarning: 0.1.43ubuntu1是无效版本,未来版本将不再支持 warnings.warn( /usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py:123: PkgResourcesDeprecationWarning: 1.1build1是无效版本,未来版本将不再支持 warnings.warn( 正在为该项目创建虚拟环境... Pipfile: /mnt/d/Projects/To-do-list/Pipfile 使用/usr/bin/python3 (3.10.4)创建虚拟环境... ⠴ 正在创建虚拟环境...已在612ms内创建虚拟环境CPython3.10.4.final.0-64 creator CPython3Posix(dest=/home/edzy/.local/share/virtualenvs/To-do-list-JHrSlGzr, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/edzy/.local/share/virtualenv) added seed packages: pip==22.2.2, setuptools==63.4.1, wheel==0.37.1 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator ✔ 虚拟环境创建成功! Traceback (most recent call last): 文件"/home/edzy/.local/bin/pipenv", 第8行, in <module> sys.exit(cli()) 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", 第1128行, in __call__ return self.main(*args, **kwargs) 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/cli/options.py", 第56行, in main return super().main(*args, **kwargs, windows_expand_args=False) 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", 第1053行, in main rv = self.invoke(ctx) 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", 第1659行, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", 第1395行, in invoke return ctx.invoke(self.callback, **ctx.params) 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", 第754行, in invoke return __callback(*args, **kwargs) 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/vendor/click/decorators.py", 第84行, in new_func return ctx.invoke(f, obj, *args, **kwargs) 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", 第754行, in invoke return __callback(*args, **kwargs) 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/cli/command.py", 第233行, in install do_install( 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/core.py", 第1942行, in do_install ensure_project( 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/core.py", 第552行, in ensure_project ensure_virtualenv( 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/core.py", 第485行, in ensure_virtualenv do_create_virtualenv( 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/core.py", 第1008行, in do_create_virtualenv project._environment = Environment( 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/environment.py", 第79行, in __init__ self._base_paths = self.get_paths() 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/environment.py", 第390行, in get_paths c = subprocess_run(command) 文件"/home/edzy/.local/lib/python3.10/site-packages/pipenv/utils/processes.py", 第75行, in subprocess_run return subprocess.run( 文件"/usr/lib/python3.10/subprocess.py", 第501行, in run with Popen(*popenargs, **kwargs) as process: 文件"/usr/lib/python3.10/subprocess.py", 第966行, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, 文件"/usr/lib/python3.10/subprocess.py", 第1842行, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] 没有那个文件或目录: '/home/edzy/.local/share/virtualenvs/To-do-list-JHrSlGzr/bin/python'
解决方案
错误核心是虚拟环境创建后找不到python可执行文件,按以下步骤修复:
清理损坏的虚拟环境
删除当前项目的虚拟环境目录,以及项目下的Pipfile文件:rm -rf /home/edzy/.local/share/virtualenvs/To-do-list-JHrSlGzr cd /mnt/d/Projects/To-do-list && rm -f Pipfile Pipfile.lock重新创建虚拟环境
进入项目目录,明确指定Python路径创建环境并安装依赖:cd /mnt/d/Projects/To-do-list pipenv --python /usr/bin/python3.10 install django检查目录权限
如果问题依旧,确认项目目录的权限归属:ls -ld /mnt/d/Projects/To-do-list若当前用户无读写权限,执行以下命令修改:
sudo chown -R edzy:edzy /mnt/d/Projects/To-do-list消除版本警告(可选)
针对pkg_resources的版本警告,升级setuptools即可解决:pip install --upgrade setuptools
内容的提问来源于stack exchange,提问作者edwin siby
相关产品推荐
相关产品推荐

