Azure ML Studio notebook运行%%bash命令错用Python 3.6内核怎么办
根因说明
Azure ML Studio Notebook 的 %%bash 魔法命令默认加载系统级 bash 环境变量,不会自动继承当前运行内核的虚拟环境路径配置。你当前选择的 Python 3.8 内核属于 azureml_py38 独立虚拟环境,而 bash 默认 PATH 优先级中 azureml_py36 的路径排在更前面,因此直接调用 python 会命中 3.6 版本的环境。
解决方案
方法1:执行代码前先激活对应虚拟环境
在%%bash代码块开头加入虚拟环境激活命令即可,示例:%%bash --bg source activate azureml_py38 python main.py &> job_0.log可执行
source activate azureml_py38 && pip show tensorflow验证TensorFlow版本是否匹配预期。方法2:直接指定当前内核Python的绝对路径调用
先在普通Python代码块中运行以下代码,获取当前内核Python的绝对路径:import sys print(sys.executable)拿到路径(常见格式为
/anaconda/envs/azureml_py38/bin/python)后,替换bash命令中的python即可:%%bash --bg /anaconda/envs/azureml_py38/bin/python main.py &> job_0.log方法3:修改bash默认PATH优先级
在Notebook初始化阶段运行以下代码,将当前内核的bin路径加到环境变量PATH的最前列,后续运行%%bash时会优先调用当前内核的Python:import sys, os os.environ['PATH'] = f"{os.path.dirname(sys.executable)}:{os.environ['PATH']}"
内容的提问来源于stack exchange,提问作者Duncan Carlmark
相关产品推荐
相关产品推荐

