Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何从AWS S3导入jupyter笔记本中的.py文件_Python 3.x_Amazon Web Services_Amazon S3 - Fatal编程技术网

Python 3.x 如何从AWS S3导入jupyter笔记本中的.py文件

Python 3.x 如何从AWS S3导入jupyter笔记本中的.py文件,python-3.x,amazon-web-services,amazon-s3,Python 3.x,Amazon Web Services,Amazon S3,我正在AWS的jupyter笔记本上工作,我有两个文件:main.ipynb和utils.py,我想做的是在我的jupyter笔记本文件中导入utils 不幸的是,我尝试了以下解决方案,但均无效: import sys sys.path.append("/home/jovyan/dir1") %load utils.py 并在更改目录后直接导入 import utils 我的文件“utils.py”: 解决的问题: 解决方案是添加以下内容: s3 = boto3.resource('s3'

我正在AWS的jupyter笔记本上工作,我有两个文件:main.ipynb和utils.py,我想做的是
在我的jupyter笔记本文件中导入utils

不幸的是,我尝试了以下解决方案,但均无效:

import sys

sys.path.append("/home/jovyan/dir1")
%load utils.py
并在更改目录后直接导入

import utils
我的文件“utils.py”:

解决的问题:

解决方案是添加以下内容:

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

import utils

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

export $PYTHONPATH=.

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

export $PYTHONPATH=.

我在哪里写这段代码?在我的jupyter笔记本里?你需要在终端上运行那个命令。你能分享更多关于你的问题的细节吗?我刚刚在我的jupyter工作区创建了两个文件“main.ipynb”和“utils.py”(jus像你的一样),然后我尝试在main.ipynb笔记本控制台中导入utils,结果成功了。实际上它并不完全在我的jupyter笔记本上,而是在AWS上的jupyter笔记本上,所有内容都以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=。
命令。您是否也在S3中存储了这些py文件?我尝试了您的解决方案,但出现了一个错误:jovyan@a9399f9a2574:~/chorn$export$PYTHONPATH=。bash:export:`=.:不是有效的标识符jovyan@a9399f9a2574:~/chorn$python python 3.7.3 |由conda forge打包|(默认值,2019年7月1日,21:52:21)[GCC 7.3.0]::Anaconda,Inc.在linux上键入“帮助”、“版权”、“信用”或“许可证”以获取更多信息。>>导出$PYTHONPATH=。文件“”,第1行导出$PYTHONPATH=。^SyntaxError:无效的语法在哪里编写此代码?在我的jupyter笔记本里?你需要在终端上运行那个命令。你能分享更多关于你的问题的细节吗?我刚刚在我的jupyter工作区创建了两个文件“main.ipynb”和“utils.py”(jus像你的一样),然后我尝试在main.ipynb笔记本控制台中导入utils,结果成功了。实际上它并不完全在我的jupyter笔记本上,而是在AWS上的jupyter笔记本上,所有内容都以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=。
命令。您是否也在S3中存储了这些py文件?我尝试了您的解决方案,但出现了一个错误:jovyan@a9399f9a2574:~/chorn$export$PYTHONPATH=。bash:export:`=.:不是有效的标识符jovyan@a9399f9a2574:~/chorn$python python 3.7.3 |由conda forge打包|(默认值,2019年7月1日,21:52:21)[GCC 7.3.0]::Anaconda,Inc.在linux上键入“帮助”、“版权”、“信用”或“许可证”以获取更多信息。>>导出$PYTHONPATH=。文件“”,第1行导出$PYTHONPATH=。^SyntaxError:无效语法