为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复 pipelinev 中的 VersionConflict 锁定失败?

如何修复 pipelinev 中的 VersionConflict 锁定失败?

不负相思意 2023-09-19 16:28:19
pipenv我在 docker 容器内使用。我尝试安装一个包,发现安装成功(添加到 Pipfile 中),但锁定一直失败。直到昨天一切都很好。这是错误:(app) root@7284b7892266:/usr/src/app# pipenv install scrapy-djangoitemInstalling scrapy-djangoitem…Adding scrapy-djangoitem to Pipfile's [packages]…✔ Installation Succeeded Pipfile.lock (6d808e) out of date, updating to (27ac89)…Locking [dev-packages] dependencies…Building requirements...Resolving dependencies...✘ Locking Failed! Traceback (most recent call last):  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 807, in <module>    main()  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 803, in main    parsed.requirements_dir, parsed.packages, parse_only=parsed.parse_only)  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 785, in _main    resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages)  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 758, in resolve_packages    results = clean_results(results, resolver, project)  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 634, in clean_results    reverse_deps = project.environment.reverse_dependencies()  File "/usr/local/lib/python3.7/site-packages/pipenv/project.py", line 376, in environment    self._environment = self.get_environment(allow_global=allow_global)  File "/usr/local/lib/python3.7/site-packages/pipenv/project.py", line 366, in get_environment    environment.extend_dists(pipenv_dist)  File "/usr/local/lib/python3.7/site-packages/pipenv/environment.py", line 127, in extend_dists    extras = self.resolve_dist(dist, self.base_working_set)可能出什么问题了?
查看完整描述

5 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

这是我的调试笔记。仍然不确定哪个包导致了问题,但这似乎确实解决了问题。


pipenv install首次使用 pipelinev version运行时出现的错误2020.8.13。


Traceback (most recent call last):

  File "/usr/local/bin/pipenv", line 8, in <module>

    sys.exit(cli())

  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 829, in __call__

    return self.main(*args, **kwargs)

  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 782, in main

    rv = self.invoke(ctx)

  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1259, in invoke

    return _process_result(sub_ctx.command.invoke(sub_ctx))

  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke

    return ctx.invoke(self.callback, **ctx.params)

  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 610, in invoke

    return callback(*args, **kwargs)

  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/decorators.py", line 73, in new_func

    return ctx.invoke(f, obj, *args, **kwargs)

  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 610, in invoke

    return callback(*args, **kwargs)

  File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/decorators.py", line 21, in new_func

    return f(get_current_context(), *args, **kwargs)

  File "/usr/local/lib/python3.6/site-packages/pipenv/cli/command.py", line 252, in install

    site_packages=state.site_packages

  File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 1928, in do_install

    site_packages=site_packages,

  File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 580, in ensure_project

    pypi_mirror=pypi_mirror,

  File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 512, in ensure_virtualenv

    python=python, site_packages=site_packages, pypi_mirror=pypi_mirror

  File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 999, in do_create_virtualenv

    project._environment.add_dist("pipenv")

  File "/usr/local/lib/python3.6/site-packages/pipenv/environment.py", line 135, in add_dist

    self.extend_dists(dist)

  File "/usr/local/lib/python3.6/site-packages/pipenv/environment.py", line 127, in extend_dists

    extras = self.resolve_dist(dist, self.base_working_set)

  File "/usr/local/lib/python3.6/site-packages/pipenv/environment.py", line 122, in resolve_dist

    deps |= cls.resolve_dist(dist, working_set)

  File "/usr/local/lib/python3.6/site-packages/pipenv/environment.py", line 121, in resolve_dist

    dist = working_set.find(req)

  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 642, in find

    raise VersionConflict(dist, req)

pkg_resources.VersionConflict: (importlib-metadata 2.0.0 (/usr/local/lib/python3.6/site-packages), Requirement.parse('importlib-metadata<2,>=0.12; python_version < "3.8"'))

如果你运行pip install -U pipenv它似乎会更改importlib-metadata版本:


Installing collected packages: importlib-metadata

  Attempting uninstall: importlib-metadata

    Found existing installation: importlib-metadata 2.0.0

    Uninstalling importlib-metadata-2.0.0:

      Successfully uninstalled importlib-metadata-2.0.0

Successfully installed importlib-metadata-1.7.0

现在如果你运行pipenv install -d --skip-lock它就会完成。看起来图书馆需要一个版本>= importlib-metadata 2.0。


当我固定以下依赖项时,它在运行时一开始不起作用pipenv lock,但是,如果我删除了锁定文件(rm Pipenv.lock),那么当我pipenv lock再次运行时它就起作用了。


virtualenv = "==20.0.31"

importlib-metadata = "==1.7.0"


查看完整回答
反对 回复 2023-09-19
?
守候你守候我

TA贡献1802条经验 获得超10个赞

Pipefile.lock尝试在安装包之前删除



查看完整回答
反对 回复 2023-09-19
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

只需删除Pipfile.lock然后重新运行即可pipenv lock



查看完整回答
反对 回复 2023-09-19
?
米脂

TA贡献1836条经验 获得超3个赞

我在使用 python 3.7.12 创建虚拟环境时遇到了同样的问题。使用 python 3.8.10 问题就消失了。在 Ubuntu 20.04.4 LTS 上。



查看完整回答
反对 回复 2023-09-19
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

以下是我们在遇到“锁定失败”时遵循的一些步骤

1.make env 2.source /etc/pyenv 3.pipenv install 4.pipenv graph 5. 拍摄相应的测试用例执行(可能会根据需求而有所不同)

希望它有效!:)


查看完整回答
反对 回复 2023-09-19
  • 5 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信