Git bash 当 运行 dvc 推送到 DAGsHub 时命令提示挂起

Git bash command prompt hanging when running dvc push to DAGsHub

我在将 DVC 文件推送到 DAGsHub 时遇到问题。

工作流程:

它坐着等待,甚至禁止我使用 Ctrl+C 取消操作。 我被迫手动关闭终端,打开一个新终端,结束任务管理器中的“Python”进程并删除.dvc/tmp/lock.

中的锁定文件

简答

不要使用ask_password。 相反,通过 运行 一次将您的令牌保存在本地配置中:

dvc remote modify origin --local --unset ask_password
dvc remote modify origin --local password <--access token-->

dvc push -r origin 应该可以了。

长答案

Git Bash 不是 运行 常规 Windows 命令提示符,而是模拟的 Unix 风格的 bash 提示符。根据你问题中的信息,我无法确定,但这可能导致 DVC 使用的 msvcrt 包在 windows 机器上提示密码为 fail/hang.

可能有 3 种方法来处理该问题:

  1. 运行 dvc pull 来自常规 Windows cmd 提示符。
  2. 找到一种方法使 Git Bash 用 winpty 包装 Python 调用 - 我不是 100% 肯定如何做到这一点,但不使用 winpty 似乎是 msvcrt 提示输入密码失败的原因。
  3. 最简单的解决方案 - 不要使用 ask_password。 相反,通过 运行 一次将您的令牌保存在本地配置中:
    dvc remote modify origin --local --unset ask_password
    dvc remote modify origin --local password <--access token-->
    
    您可以通过单击 DVC 旁边的问号来获取访问令牌 远程访问您的 DAGsHub 存储库,然后单击“显示我的令牌”。