首页 > 解决方案 > 创建环境时如何读取和修复 pipenv 错误?

问题描述

我开始了一个新项目,想通过 pipenv 创建一个虚拟环境,就像我过去七次所做的那样。我是 pipenv 的初学者/新手,但设法让事情做我想做的事情,并且在我无法自己解决之前没有遇到任何重大问题。我真的很喜欢没有在我的系统上安装大量的依赖项,并且希望坚持使用虚拟环境。

要创建问题,我只需在一个新文件夹中生成一个新的锁定文件,无论是否事先有文件。已经生成的锁文件可以正常工作(没有尝试在旧项目中安装新的依赖项)。

终端

-> 工作区 pipenv 锁

Creating a virtualenv for this project…
Pipfile: /home/djursing/workspace/Pipfile
Using /usr/bin/python3 (3.6.7) to create virtualenv…
⠋ Creating virtual environment...Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/djursing/.local/share/virtualenvs/workspace-kiFyzAmW/bin/python3

✘ Failed creating virtual environment 
[pipenv.exceptions.VirtualenvCreationException]:   File "/home/djursing/.local/lib/python3.6/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
[pipenv.exceptions.VirtualenvCreationException]:       return f(get_current_context(), *args, **kwargs)
[pipenv.exceptions.VirtualenvCreationException]:   File "/home/djursing/.local/lib/python3.6/site-packages/pipenv/cli/command.py", line 319, in lock
[pipenv.exceptions.VirtualenvCreationException]:       ensure_project(three=state.three, python=state.python, pypi_mirror=state.pypi_mirror)
[pipenv.exceptions.VirtualenvCreationException]:   File "/home/djursing/.local/lib/python3.6/site-packages/pipenv/core.py", line 574, in ensure_project
[pipenv.exceptions.VirtualenvCreationException]:       pypi_mirror=pypi_mirror,
[pipenv.exceptions.VirtualenvCreationException]:   File "/home/djursing/.local/lib/python3.6/site-packages/pipenv/core.py", line 506, in ensure_virtualenv
[pipenv.exceptions.VirtualenvCreationException]:       python=python, site_packages=site_packages, pypi_mirror=pypi_mirror
[pipenv.exceptions.VirtualenvCreationException]:   File "/home/djursing/.local/lib/python3.6/site-packages/pipenv/core.py", line 935, in do_create_virtualenv
[pipenv.exceptions.VirtualenvCreationException]:       extra=[crayons.blue("{0}".format(c.err)),]
[pipenv.exceptions.VirtualenvCreationException]: Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/djursing/.local/lib/python3.6/site-packages/virtualenv.py", line 2502, in <module>
    main()
  File "/home/djursing/.local/lib/python3.6/site-packages/virtualenv.py", line 793, in main
    symlink=options.symlink,
  File "/home/djursing/.local/lib/python3.6/site-packages/virtualenv.py", line 1070, in create_environment
    install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages=site_packages, clear=clear, symlink=symlink)
  File "/home/djursing/.local/lib/python3.6/site-packages/virtualenv.py", line 1392, in install_python
    shutil.copyfile(executable, py_executable)
  File "/usr/lib/python3.6/shutil.py", line 121, in copyfile
    with open(dst, 'wb') as fdst:
OSError: [Errno 26] Text file busy: '/home/djursing/.local/share/virtualenvs/workspace-kiFyzAmW/bin/python3'

Failed to create virtual environment.

我希望锁定文件,并且我正在为我的项目安装所需的依赖项的路上,但我却陷入了这个错误。我对一般系统管理知之甚少,这就是为什么我尽量避免在系统范围内安装依赖项/包。

我检查了名为:“OError: [Errno 26] Text file busy: '/...myvirtualenv/bin/python'”的线程,但没有让我更接近解决问题。

希望有人能够帮助我。

标签: pythonpython-3.xvirtualenvpipenv

解决方案


我通过 python (python -run pipenv) 使用带有我创建的别名的 pipenv,而不是使用 bin 文件的路径 (~/usr/local/bin/pipenv)。更改别名以引用路径解决了该问题。


推荐阅读