首页 > 解决方案 > 通过挂载密钥访问 VM 中的 Kaggle 工具

问题描述

我正在尝试使用 kaggle 命令行工具,但在我自己的虚拟机中使用它时遇到了问题。我从该站点下载了 API 令牌并将其放在 Windows 上的 /.kaggle/kaggle.json 中。我的 vm 安装了 ubuntu,在 Vagrant 文件中我有以下内容:

config.vm.synced_folder ENV['HOME'] + "/.kaggle", "/home/ubuntu/.kaggle", mount_options: ['dmode=700,fmode=700']

config.vm.provision "shell", inline: <<-SHELL
  echo "export KAGGLE_CONFIG_DIR='/home/ubuntu/.kaggle/kaggle.json'" >> /etc/profile.d/myvar.sh
SHELL

在虚拟机中运行 env 命令时,我发现它是正确的: KAGGLE_CONFIG_DIR=/home/ubuntu/.kaggle/kaggle.json

但是,当我尝试使用 kaggle 命令时,例如 kaggle -h 我得到以下信息

(main) vagrant@dev:/home/ubuntu/.kaggle$ ls
kaggle.json
(main) vagrant@dev:/home/ubuntu/.kaggle$ kaggle -h
Traceback (most recent call last):
  File "/user/home/venvs/main/bin/kaggle", line 5, in <module>
    from kaggle.cli import main
  File "/user/home/venvs/main/lib/python3.7/site-packages/kaggle/__init__.py", line 23, in <module>
    api.authenticate()
  File "/user/home/venvs/main/lib/python3.7/site-packages/kaggle/api/kaggle_api_extended.py", line 149, in authenticate
    self.config_file, self.config_dir))
OSError: Could not find kaggle.json. Make sure it's located in /home/ubuntu/.kaggle/kaggle.json. Or use the environment method.

路径都是正确的,文件是它应该寻找的地方。有谁知道可能是什么问题?是因为装了吗?

标签: kagglevagrant-provision

解决方案


好吧,我误读了说明:“您可以定义一个 shell 环境变量 KAGGLE_CONFIG_DIR 来将此位置更改为 $KAGGLE_CONFIG_DIR/kaggle.json”

所以 env 变量应该是 /home/ubuntu/.kaggle/ 而不是 /home/ubuntu/.kaggle/kaggle.json。


推荐阅读