kaggle - 通过挂载密钥访问 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.
路径都是正确的,文件是它应该寻找的地方。有谁知道可能是什么问题?是因为装了吗?
解决方案
好吧,我误读了说明:“您可以定义一个 shell 环境变量 KAGGLE_CONFIG_DIR 来将此位置更改为 $KAGGLE_CONFIG_DIR/kaggle.json”
所以 env 变量应该是 /home/ubuntu/.kaggle/ 而不是 /home/ubuntu/.kaggle/kaggle.json。
推荐阅读
- r - flexsurv 包:用于绘制两个研究组的 Kaplan-Meier 曲线预测的代码
- java - 如何使用 Java 在 Android Studio 中使用 dataType(字符串、整数、布尔值)创建枚举类型?
- typescript - Typescript ReferenceError: myApp 未定义
- dm-script - TagGroupGetTagType 返回错误的类型
- sql - SQL IN AND NOT IN 同一个请求
- python - Python中的列表和基于具有重复元素的索引的排序
- python - GCC 编译器版本与 Python 2.7.17 冲突
- java - 'android.annotation.NonNull' 在 'android.annotation' 中不公开。无法从外部包访问
- python - 如果键是python中的数字,有没有办法按键对字典进行排序?
- reactjs - 如何使用material-ui的网格系统将5个项目均匀地排列成一行?