运行 dvc push 到 DAGsHub 时,Git bash 命令提示符挂起

Ruk*_*ner 5 dvc

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

工作流程:

  • 我用我的电子邮件注册了 DAGsHub。
  • 我创建了一个 repo 并将其克隆到我的计算机。
  • 我将文件添加到 repo 并使用 DVC 和 Git 跟踪它们来跟踪指针文件。
  • 运行 DVC push -r origin,它会询问我的密码。当我输入密码并按回车键时 - 没有任何反应。

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

小智 4

简短回答

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

dvc remote modify origin --local --unset ask_password
dvc remote modify origin --local password <--access token-->
Run Code Online (Sandbox Code Playgroud)

dvc push -r origin那么应该可以工作。

长答案

Git Bash不运行常规的 Windows 命令提示符,而是运行模拟的 Unix 风格的 bash 提示符。从您问题中的信息来看,我无法确定,但这可能导致msvcrtDVC 使用的软件包提示 Windows 计算机上的密码失败/挂起。

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

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