dvc - 运行 dvc push 到 DAGsHub 时,Git bash 命令提示符挂起
问题描述
我在将带有 DVC 的文件推送到 DAGsHub 时遇到问题。
工作流程:
- 我用我的电子邮件注册了 DAGsHub。
- 我创建了一个 repo 并将其克隆到我的计算机上。
- 我将文件添加到 repo 并使用 DVC 和 Git 跟踪它们来跟踪指针文件。
- 运行 DVC push -r origin,它要求我输入密码。当我输入密码并按回车键时 - 没有任何反应。
它坐着等待,甚至阻止我使用 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 提示符。根据您问题中的信息,我无法确定,但这可能导致msvcrt
DVC 使用的软件包提示 Windows 机器上的密码失败/挂起。
有可能有 3 种方法来处理这个问题:
dvc pull
从常规 Windows cmd 提示符运行。- 找到一种方法让 Git Bash 包装 Python 调用
winpty
- 我不是 100% 肯定如何做到这一点,但不使用winpty
似乎是msvcrt
提示输入密码失败的原因。 - 最简单的解决方案 - 不要使用
ask_password
. 相反,通过运行一次将您的令牌保存在本地配置中:
您可以通过单击 DAGsHub 存储库的 DVC 远程旁边的问号来获取访问令牌,然后单击“显示我的令牌”。dvc remote modify origin --local --unset ask_password dvc remote modify origin --local password <--access token-->
推荐阅读
- python - 从数组中提取匹配元素
- javascript - 当我点击 prev 它跳过一个部分并转到另一个部分
- android - 使用 React-Native-Router-Flux 在所有屏幕中显示组件 - React Native
- java - java.lang.SecurityException:缺少控制媒体的权限 - mediaSessionManager.getActiveSessions
- ios - React Native:通过 Native Modules 获取设备名称,无需回调
- javascript - 我想使用谷歌应用脚本在一个新的谷歌工作表中对不同工作表(位于不同电子表格中)中的值求和
- iis - IIS httpredirect 导致会话空
- swift - 简化 Swift 数据结构
- chef-infra - 为什么“刀”不尊重我的 --config 选项?
- javascript - React:将 div 的宽度设置为图像的宽度