如何在AWS SageMaker上的Python路径中添加其他路径

时间:2019-03-11 01:21:02

标签: python linux amazon-web-services amazon-ec2

我一直在尝试在其中存放python模块的文件夹中添加一个,到目前为止,我还无法通过AWS终端执行此操作。包含.py文件的文件夹位于主SageMaker文件夹内,因此我正在尝试(我也尝试过SageMaker/zds,它是保存模块的文件夹):

export PYTHONPATH="${PYTHONPATH}:SageMaker/"

在使用PYTHONPATH通过终端打印python -c "import sys; print('\n'.join(sys.path))"的目录之后,我确实确实将我的新路径包括在PYTHONPATH中。但是,当我尝试从任何笔记本(使用from zds.module import *from module import *)导入任何模块时,都会收到该模块不存在的错误。如果我直接从笔记本中的PYTHONPATH打印路径,则不再在列表中看到以前添加的路径。

我在这里错过了一些基本的知识吗,还是无法在AWS SageMaker中向PYTHONPATH添加路径?现在,我基本上必须在每个笔记本中使用import sys, os sys.path.insert(0, os.path.abspath('..'))来解决问题。

2 个答案:

答案 0 :(得分:0)

感谢您使用Amazon SageMaker!

https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html

复制
  

Amazon SageMaker笔记本实例使用conda环境为Jupyter笔记本实现不同的内核。如果要安装一个或多个笔记本内核可用的软件包,请用conda环境命令将命令安装在命令中,以激活包含要安装软件包的内核的conda环境。   例如,如果您只想在python3环境中安装软件包,请使用以下代码:

# This will affect only the Jupyter kernel called "conda_python3".
source activate python3

# Replace myPackage with the name of the package you want to install.
pip install myPackage
# You can also perform "conda install" here as well.

source deactivate

如果以上述建议的方式进行安装,则应该能够从正在使用的Notebook相应内核中导入软件包。让我们知道是否有帮助。

答案 1 :(得分:0)

将其添加到lifecycle script对我有用

sudo -i <<'EOF'

touch /etc/profile.d/jupyter-env.sh
echo export PYTHONPATH="$PYTHONPATH:/home/ec2-user/SageMaker/repo-name/src" >> /etc/profile.d/jupyter-env.sh

EOF