在 Google Colab 中设置环境变量
Setting environment variables in Google Colab
我正在尝试使用 Kaggle CLI API,为了做到这一点,我没有使用 kaggle.json
进行身份验证,而是使用 environment variables to set the credentials.
!pip install --upgrade kaggle
!export KAGGLE_USERNAME=abcdefgh
!export KAGGLE_KEY=abcdefgh
!export -p
但是,env 的打印列表。变量不包含我上面设置的变量。
declare -x CLICOLOR="1"
declare -x CLOUDSDK_CONFIG="/content/.config"
declare -x COLAB_GPU="1"
declare -x CUDA_PKG_VERSION="9-2=9.2.148-1"
declare -x CUDA_VERSION="9.2.148"
declare -x CUDNN_VERSION="7.4.1.5"
declare -x DATALAB_SETTINGS_OVERRIDES="{\"kernelManagerProxyPort\":6000,\"kernelManagerProxyHost\":\"172.28.0.3\",\"jupyterArgs\":[\"notebook\",\"-y\",\"--no-browser\",\"--log-level=DEBUG\",\"--debug\",\"--NotebookApp.allow_origin=\\"*\\"\",\"--NotebookApp.log_format=\\"%(message)s\\"\",\"--NotebookApp.disable_check_xsrf=True\",\"--NotebookApp.token=\",\"--Session.key=\\"\\"\",\"--Session.keyfile=\\"\\"\",\"--ContentsManager.untitled_directory=\\"Untitled Folder\\"\",\"--ContentsManager.untitled_file=\\"Untitled File\\"\",\"--ContentsManager.untitled_notebook=\\"Untitled Notebook\\"\",\"--KernelManager.autorestart=True\",\"--ip=\\"172.28.0.2\\"\"]}"
declare -x DEBIAN_FRONTEND="noninteractive"
declare -x ENV="/root/.bashrc"
declare -x GIT_PAGER="cat"
declare -x GLIBCPP_FORCE_NEW="1"
declare -x GLIBCXX_FORCE_NEW="1"
declare -x HOME="/root"
declare -x HOSTNAME="2ced809e9844"
declare -x JPY_PARENT_PID="57"
declare -x LANG="en_US.UTF-8"
declare -x LD_LIBRARY_PATH="/usr/lib64-nvidia"
declare -x LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libtcmalloc.so.4"
declare -x MPLBACKEND="module://ipykernel.pylab.backend_inline"
declare -x NCCL_VERSION="2.3.7"
declare -x NVIDIA_DRIVER_CAPABILITIES="compute,utility"
declare -x NVIDIA_REQUIRE_CUDA="cuda>=9.2"
declare -x NVIDIA_VISIBLE_DEVICES="all"
declare -x OLDPWD="/"
declare -x PAGER="cat"
declare -x PATH="/usr/local/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tools/node/bin:/tools/google-cloud-sdk/bin:/opt/bin"
declare -x PWD="/content"
declare -x PYTHONPATH="/env/python"
declare -x SHELL="/bin/bash"
declare -x SHLVL="2"
declare -x TERM="xterm-color"
declare -x TF_FORCE_GPU_ALLOW_GROWTH="true"
declare -x _="/tools/node/bin/forever"
declare -x __EGL_VENDOR_LIBRARY_DIRS="/usr/lib64-nvidia:/usr/share/glvnd/egl_vendor.d/"
我想你想做这样的事情:
import os
os.environ['KAGGLE_USERNAME'] = ...
os.environ['KAGGLE_KEY'] = ...
原因是 !export 会在临时子shell 中分配环境变量。但是,您想为生成那些子 shell 的 Python 子进程更新环境。
如果你喜欢 %magic,你也可以使用 %env 让它更短一些。
%env KAGGLE_USERNAME=abcdefgh
如果值在变量中,您还可以使用
%env KAGGLE_USERNAME=$username
我正在尝试使用 Kaggle CLI API,为了做到这一点,我没有使用 kaggle.json
进行身份验证,而是使用 environment variables to set the credentials.
!pip install --upgrade kaggle
!export KAGGLE_USERNAME=abcdefgh
!export KAGGLE_KEY=abcdefgh
!export -p
但是,env 的打印列表。变量不包含我上面设置的变量。
declare -x CLICOLOR="1"
declare -x CLOUDSDK_CONFIG="/content/.config"
declare -x COLAB_GPU="1"
declare -x CUDA_PKG_VERSION="9-2=9.2.148-1"
declare -x CUDA_VERSION="9.2.148"
declare -x CUDNN_VERSION="7.4.1.5"
declare -x DATALAB_SETTINGS_OVERRIDES="{\"kernelManagerProxyPort\":6000,\"kernelManagerProxyHost\":\"172.28.0.3\",\"jupyterArgs\":[\"notebook\",\"-y\",\"--no-browser\",\"--log-level=DEBUG\",\"--debug\",\"--NotebookApp.allow_origin=\\"*\\"\",\"--NotebookApp.log_format=\\"%(message)s\\"\",\"--NotebookApp.disable_check_xsrf=True\",\"--NotebookApp.token=\",\"--Session.key=\\"\\"\",\"--Session.keyfile=\\"\\"\",\"--ContentsManager.untitled_directory=\\"Untitled Folder\\"\",\"--ContentsManager.untitled_file=\\"Untitled File\\"\",\"--ContentsManager.untitled_notebook=\\"Untitled Notebook\\"\",\"--KernelManager.autorestart=True\",\"--ip=\\"172.28.0.2\\"\"]}"
declare -x DEBIAN_FRONTEND="noninteractive"
declare -x ENV="/root/.bashrc"
declare -x GIT_PAGER="cat"
declare -x GLIBCPP_FORCE_NEW="1"
declare -x GLIBCXX_FORCE_NEW="1"
declare -x HOME="/root"
declare -x HOSTNAME="2ced809e9844"
declare -x JPY_PARENT_PID="57"
declare -x LANG="en_US.UTF-8"
declare -x LD_LIBRARY_PATH="/usr/lib64-nvidia"
declare -x LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libtcmalloc.so.4"
declare -x MPLBACKEND="module://ipykernel.pylab.backend_inline"
declare -x NCCL_VERSION="2.3.7"
declare -x NVIDIA_DRIVER_CAPABILITIES="compute,utility"
declare -x NVIDIA_REQUIRE_CUDA="cuda>=9.2"
declare -x NVIDIA_VISIBLE_DEVICES="all"
declare -x OLDPWD="/"
declare -x PAGER="cat"
declare -x PATH="/usr/local/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tools/node/bin:/tools/google-cloud-sdk/bin:/opt/bin"
declare -x PWD="/content"
declare -x PYTHONPATH="/env/python"
declare -x SHELL="/bin/bash"
declare -x SHLVL="2"
declare -x TERM="xterm-color"
declare -x TF_FORCE_GPU_ALLOW_GROWTH="true"
declare -x _="/tools/node/bin/forever"
declare -x __EGL_VENDOR_LIBRARY_DIRS="/usr/lib64-nvidia:/usr/share/glvnd/egl_vendor.d/"
我想你想做这样的事情:
import os
os.environ['KAGGLE_USERNAME'] = ...
os.environ['KAGGLE_KEY'] = ...
原因是 !export 会在临时子shell 中分配环境变量。但是,您想为生成那些子 shell 的 Python 子进程更新环境。
如果你喜欢 %magic,你也可以使用 %env 让它更短一些。
%env KAGGLE_USERNAME=abcdefgh
如果值在变量中,您还可以使用
%env KAGGLE_USERNAME=$username