【问题标题】:How to import .py file in jupyter notebook from AWS S3如何从 AWS S3 在 jupyter notebook 中导入 .py 文件
【发布时间】:2020-02-29 16:38:16
【问题描述】:

我正在 AWS 中开发一个 jupyter notebook,我有两个文件:main.ipynb 和 utils.py,我想做的是在我的 jupyter notebook 文件中 import utils

不幸的是,我尝试了以下解决方案,但都没有奏效:

import sys

sys.path.append("/home/jovyan/dir1")
%load utils.py

并在更改目录后直接导入

import utils

我的文件“utils.py”:

def hello():
    print("hello")

问题解决了:

解决方案是添加这些:

s3 = boto3.resource('s3')
s3.meta.client.download_file(os.environ['S3_BUCKET'], "dir1/utils.py", "utils.py")

import utils

【问题讨论】:

    标签: python-3.x amazon-web-services amazon-s3


    【解决方案1】:

    将 python 路径导出到您尝试导入 utils 的路径。 从您的文件路径运行以下命令

    export $PYTHONPATH=.
    

    【讨论】:

    • 我在哪里写这段代码?在我的 jupyter 笔记本中?
    • 您需要在终端上运行该命令。你能分享你的确切问题的更多细节吗?我刚刚在我的 jupyter 工作区中创建了两个文件“main.ipynb”和“utils.py”(就像你的一样)然后我尝试在 main.ipynb 笔记本控制台中导入 utils 并且它起作用了。
    • 实际上它并不完全在我的 jupyter notebook 上,它在我在 AWS 上的 jupyter notebook 上,所有内容都以 S3 格式存储。就像如果你想打开一个 csv 文件,你必须这样做: fs = s3fs.S3FileSystem(anon=False) 和 fs.open(os.environ['S3_BUCKET'] + f'{path}/{dataset_name}')作为 f: df = pd.read_table(f, sep=sep)
    • 所以 jupyter 部署在 AWS EC2 上?在这种情况下,您可以在 EC2 上存在这两个文件的路径上运行 export $PYTHONPATH=. 命令。您是否也将这些 py 文件存储在 S3 中?
    • 我已经尝试过你的解决方案我有一个错误:jovyan@a9399f9a2574:~/Churn$ export $PYTHONPATH=. bash: export: `=.': 不是一个有效的标识符 jovyan@a9399f9a2574:~/Churn$ python Python 3.7.3 | conda-forge 打包| (默认,2019 年 7 月 1 日,21:52:21)[GCC 7.3.0] :: Anaconda, Inc. on linux 键入“帮助”、“版权”、“信用”或“许可”以获取更多信息。 >>> 导出 $PYTHONPATH=。文件“”,第 1 行导出 $PYTHONPATH=。 ^ SyntaxError: 无效语法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 2021-06-21
    • 2020-11-30
    • 2018-04-23
    • 1970-01-01
    相关资源
    最近更新 更多