Python 3.x 将脚本导入IBM WATSON STUDIO中的笔记本

Python 3.x 将脚本导入IBM WATSON STUDIO中的笔记本,python-3.x,jupyter-notebook,ibm-watson,watson-studio,Python 3.x,Jupyter Notebook,Ibm Watson,Watson Studio,我正在IBMWatson Studio免费版上对CIFAR10图像进行PCA,因此我上传了python文件,以便在Studio上下载CIFAR10 下图。 但是,当我尝试导入缓存时,会显示以下错误。 下图- 在谷歌上花了一段时间后,我找到了一个解决方案,但我无法理解。 链接 解决方案如下:- 单击添加数据图标(显示添加数据图标),然后浏览脚本文件或将其拖动到笔记本侧栏中。 单击笔记本中的空代码单元格,然后单击文件下方的“插入代码”链接。获取返回的字符串,并写入运行时会话附带的文件系统中的文

我正在IBMWatson Studio免费版上对CIFAR10图像进行PCA,因此我上传了python文件,以便在Studio上下载CIFAR10

下图。

但是,当我尝试导入
缓存时,会显示以下错误。
下图-

在谷歌上花了一段时间后,我找到了一个解决方案,但我无法理解。 链接

解决方案如下:-
单击添加数据图标(显示添加数据图标),然后浏览脚本文件或将其拖动到笔记本侧栏中。
单击笔记本中的空代码单元格,然后单击文件下方的“插入代码”链接。获取返回的字符串,并写入运行时会话附带的文件系统中的文件。
要导入类以访问笔记本中脚本中的方法,请使用以下命令:
对于Python:
从进口
我听不懂这句话

`并写入运行时会话附带的文件系统中的文件``

在哪里可以找到运行时会话附带的文件?文件系统位于哪里


在这方面,有谁能帮我详细说明在哪里可以找到该文件吗?您有导入错误,因为您尝试导入的脚本在Python运行时的本地文件系统中不可用。上载的文件(
cache.py
cifar10.py
等)将上载到与Watson Studio项目关联的对象存储桶中。要使用这些文件,您需要使它们在Python运行时可用,例如通过将脚本下载到运行时本地文件系统

更新:同时有一个选项可以直接插入StreamingBody对象。这还将包括所有必需的凭据。如果使用的是
insert StreamingBody object
选项,则可以跳到本答案的
将其写入本地运行时文件系统中的文件

或者

您可以使用下面的代码段读取StreamingBody对象中的脚本:

import types
import pandas as pd
from botocore.client import Config
import ibm_boto3

def __iter__(self): return 0
os_client= ibm_boto3.client(service_name='s3',
ibm_api_key_id='<IBM_API_KEY_ID>',
ibm_auth_endpoint="<IBM_AUTH_ENDPOINT>",
config=Config(signature_version='oauth'),
endpoint_url='<ENDPOINT>')

# Your data file was loaded into a botocore.response.StreamingBody object.
# Please read the documentation of ibm_boto3 and pandas to learn more about the possibilities to load the data.
# ibm_boto3 documentation: https://ibm.github.io/ibm-cos-sdk-python/
# pandas documentation: http://pandas.pydata.org/
streaming_body_1 = os_client.get_object(Bucket='<BUCKET>', Key='cifar.py')['Body']
# add missing __iter__ method, so pandas accepts body as file-like object
if not hasattr(streaming_body_1, "__iter__"): streaming_body_1.__iter__ = types.MethodType( __iter__, streaming_body_1 ) 
这将打开具有写访问权限的文件,并调用
write
方法写入该文件。然后,您应该能够简单地导入脚本

import cifar

注意:通过单击文件下拉菜单上的
插入凭据
选项,您可以获得文件的凭据,如
IBM\u API\u KEY\u ID

您有导入错误,因为您尝试导入的脚本在Python运行时的本地文件系统中不可用。上载的文件(
cache.py
cifar10.py
等)将上载到与Watson Studio项目关联的对象存储桶中。要使用这些文件,您需要使它们在Python运行时可用,例如通过将脚本下载到运行时本地文件系统

更新:同时有一个选项可以直接插入StreamingBody对象。这还将包括所有必需的凭据。如果使用的是
insert StreamingBody object
选项,则可以跳到本答案的
将其写入本地运行时文件系统中的文件

或者

您可以使用下面的代码段读取StreamingBody对象中的脚本:

import types
import pandas as pd
from botocore.client import Config
import ibm_boto3

def __iter__(self): return 0
os_client= ibm_boto3.client(service_name='s3',
ibm_api_key_id='<IBM_API_KEY_ID>',
ibm_auth_endpoint="<IBM_AUTH_ENDPOINT>",
config=Config(signature_version='oauth'),
endpoint_url='<ENDPOINT>')

# Your data file was loaded into a botocore.response.StreamingBody object.
# Please read the documentation of ibm_boto3 and pandas to learn more about the possibilities to load the data.
# ibm_boto3 documentation: https://ibm.github.io/ibm-cos-sdk-python/
# pandas documentation: http://pandas.pydata.org/
streaming_body_1 = os_client.get_object(Bucket='<BUCKET>', Key='cifar.py')['Body']
# add missing __iter__ method, so pandas accepts body as file-like object
if not hasattr(streaming_body_1, "__iter__"): streaming_body_1.__iter__ = types.MethodType( __iter__, streaming_body_1 ) 
这将打开具有写访问权限的文件,并调用
write
方法写入该文件。然后,您应该能够简单地导入脚本

import cifar
注意:通过单击文件下拉菜单上的
插入凭据
选项,可以获得文件的凭据,如
IBM\u API\u KEY\u ID