Pipenv: 上次默认依赖项被标记为本地且可编辑

创建于 2020-10-01  ·  9评论  ·  资料来源: pypa/pipenv

查看诊断文档以了解常见问题。 我在下面的重现步骤中概述了我的(可能是有缺陷的)工作流程。 我一直在为此大惊小怪,抱怨了自己几个星期,并希望这是一个臭虫。

问题说明

Pipfile.lock的默认部分中列出的最后一个外部软件包被错误地标记为本地且可编辑

预期结果

pypi仍提供了列出的最后一个外部软件包

实际结果

我的Pipfile.lock包含了这个差异,它由于明显的原因破坏了CI和其他用户:

             "version": "==1.25.10"
         },
         "wrapt": {
-            "hashes": [
-                "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
-            ],
-            "version": "==1.12.1"
+            "editable": true,
+            "path": "."
         }
     },
     "develop": {

复制步骤

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
flake8 = "3.8.3"
pytest = "5.4.3"
pytest-cov = "2.10.0"
termcolor = "1.1.0"

[packages]
mycli = {editable = true, path = "."}

[requires]
python_version = "3.7"

(mycli有一个setup.py以便于为python click创建入口点并定义非dev依赖项)

该项目是一个CLI实用程序,我们克隆存储库并通过以下方式安装:
PIPENV_IGNORE_VIRTUALENVS=1 PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy

作为添加新依赖项的开发人员,我编辑setup.py并运行:
pipenv lock

这将生成一个Pipfile.lock文件,该文件的确包含我的新依赖关系,但也包含格式错误的最后一个默认依赖关系(我在该位置靠近字母末尾的多个软件包有问题,特别是wraptzipp

我可以解决此问题,并通过以下方式生成正确的Pipfile.lock:
rm -rf Pipfile.lock .venv

pipenv lock


我故意省略pipenv --support输出,因为我正在处理的应用程序是专有的,并且我担心泄漏我们环境的详细信息(或者我们的安全团队对我大吼:大笑:)。 如果有特定的代码片段,我可以进行整理,并提供给我,我很乐意,只是不想预先对整个内容进行整理。

再次感谢您的阅读,希望我只是傻瓜。
谢谢!

Type Vendored Dependencies

最有用的评论

正如@jmehnle@patelamol所评论的那样,在这种情况下,我的某些软件包也遇到了类似的问题

       "zipp": {
            "editable": true,
            "path": "."
        },

我的解决方案是手动编辑pipfile锁,该锁对最新版本不安全/不健康

"zipp": {
            "hashes": [
                "sha256:43f4fa8d8bb313e65d8323a3952ef8756bf40f9a5c3ea7334be23ee4ec8278b6",
                "sha256:b52f22895f4cfce194bc8172f3819ee8de7540aa6d873535a8668b730b8b411f"
            ],
            "version": "==3.2.0"
        }

我想知道是否有即将通过此错误修正发布的pipenv更新

所有9条评论

@patelamol ,我可以使用pipenv 2020.08.13复制它。

2018.11.26之前,我在所有最新版本中都遇到了该错误。 因此2018.11.26没有这个问题。

正如@jmehnle@patelamol所评论的那样,在这种情况下,我的某些软件包也遇到了类似的问题

       "zipp": {
            "editable": true,
            "path": "."
        },

我的解决方案是手动编辑pipfile锁,该锁对最新版本不安全/不健康

"zipp": {
            "hashes": [
                "sha256:43f4fa8d8bb313e65d8323a3952ef8756bf40f9a5c3ea7334be23ee4ec8278b6",
                "sha256:b52f22895f4cfce194bc8172f3819ee8de7540aa6d873535a8668b730b8b411f"
            ],
            "version": "==3.2.0"
        }

我想知道是否有即将通过此错误修正发布的pipenv更新

@gregflynn @patelamol那么这个问题在master分支上是否存在? 我无法按照给定的步骤进行复制

@gregflynn @patelamol那么这个问题在master分支上是否存在? 我无法按照给定的步骤进行复制

一定! 我以前没有从github运行pipenv,也没有在自述文件中看到说明,所以我会很详细地介绍以下步骤:

  1. git克隆下来
  2. pyenv virtualenv 3.7.9 pipenv && pyenv local pipenv && pip install -e .
  3. 验证:
    ```
    $ pipenv-版本
    pipenv版本2020.8.13
$ ~/.pyenv/versions/pipenv/bin/pipenv --version 
pipenv, version 2020.8.13.dev0
```

  1. 用2020.8.13制作了一个新鲜的Venv
  2. 在我的setup.py中添加了stockquotes == 2.0.0
  3. 跑了~/.pyenv/versions/pipenv/bin/pipenv lock
  4. 没有骰子,看到错误
         "wrapt": {
-            "hashes": [
-                "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
-            ],
-            "version": "==1.12.1"
+            "editable": true,
+            "path": "."
         }
     },

@frostming感谢您的建议并查看,如果我误入歧途,很乐意做更多测试或更正此测试。

@gregflynn

  1. 用2020.8.13制作了一个新鲜的Venv

重现此错误的步骤很关键吗? 我是用大师Pipenv创建的,无法复制。 如果可能的话,Docker镜像将有很大帮助

@gregflynn

  1. 用2020.8.13制作了一个新鲜的Venv

重现此错误的步骤很关键吗? 我是用大师Pipenv创建的,无法复制。 如果可能的话,Docker镜像将有很大帮助

眼睛很好,但我进行了以下更改,但仍然可以使用最新的主版本进行复制。 对于步骤4,我更新了我的安装脚本:

-PIPENV_IGNORE_VIRTUALENVS=1 PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy
+PIPENV_IGNORE_VIRTUALENVS=1 PIPENV_VENV_IN_PROJECT=1 $HOME/.pyenv/versions/pipenv/bin/pipenv install --deploy

仍然得到:

         "wrapt": {
-            "hashes": [
-                "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
-            ],
-            "version": "==1.12.1"
+            "editable": true,
+            "path": "."
         }
     },

乐于尝试更多的东西! 谢谢

哦,我设法重现了它! 我没有注意到关键因素是VENV_IN_PROJECT。

哦,我设法重现了它! 我没有注意到关键因素是VENV_IN_PROJECT。

:raised_hands:好消息! 抱歉,我忽略给您一个Dockerfile,在我的初读中错过了该笔记

此页面是否有帮助?
0 / 5 - 0 等级