Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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 2.7 如何在DSX中提供用户功能/模块_Python 2.7_Python 3.x_Ibm Cloud_Dsx_Data Science Experience - Fatal编程技术网

Python 2.7 如何在DSX中提供用户功能/模块

Python 2.7 如何在DSX中提供用户功能/模块,python-2.7,python-3.x,ibm-cloud,dsx,data-science-experience,Python 2.7,Python 3.x,Ibm Cloud,Dsx,Data Science Experience,我在一个单独的python脚本中定义了一些助手实用程序。我想让脚本可用于DSX笔记本,这样我可以在单元格中调用它们,但我不想直接将脚本放入单元格中 实现这一点的一些方法是什么?如果您同意在公共git存储库中公开代码,您可以将代码转换为python包并保存在github中。有关示例包,请参见此处: 您可以使用以下方式直接从github安装它: !pip install --user git+https://github.com/public_account/public_repo 私有githu

我在一个单独的python脚本中定义了一些助手实用程序。我想让脚本可用于DSX笔记本,这样我可以在单元格中调用它们,但我不想直接将脚本放入单元格中


实现这一点的一些方法是什么?

如果您同意在公共git存储库中公开代码,您可以将代码转换为python包并保存在github中。有关示例包,请参见此处:

您可以使用以下方式直接从github安装它:

!pip install --user git+https://github.com/public_account/public_repo
私有github存储库 还可以使用与上面类似的方法,使用私有github存储库,只需几个额外的设置步骤和不同的pip url格式。例如

在dsx上生成ssh密钥

! ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N ""
将以下命令的输出添加到github帐户设置::SSH和GPG密钥

! cat ~/.ssh/id_rsa.pub
接下来,将github ssh密钥添加到dsx:

! ssh-keyscan github.com >> ~/.ssh/known_hosts
重要提示:您应该手动验证导入的github主机密钥是否真实。您可以通过以下方式查看导入的密钥:

! cat ~/.ssh/known_hosts
现在可以使用pip安装:

! pip install --user git+ssh://git@github.com/private_account/private_repo
小心以上方法有一些安全考虑。也就是说,任何有权访问spark服务(您在其中执行上述命令)的人都可以访问git私有存储库


注意:

理想情况下,在未来,我希望看到dsx提供对编辑项目中所有文件的支持,并将所有项目文件提交给github,例如


一个选项是使用以下API调用从客户端计算机将包上载到spark帐户:

curl \
   -X PUT \
   -k \
   -u ${tenant_id}:${tenant_secret} \
   -H "X-Spark-service-instance-id: ${instance_id}" \
   --data-binary "@path_to_local_file" \
   ${cluster_master_url}/tenant/data/destination_file_name
通过登录Bluemix控制台并导航到服务凭据,可以获得上述变量。或者,您可以使用命令行
cf
工具来检索此信息。这提供了有关
cf
命令行方法的更多信息

将软件包上载到spark服务后,您可以使用:

! pip install --user ${HOME}/data/destination_file_name

这个答案值得称赞

如果包位于git repo中的文件夹中:!pip安装——用户“git+”,无需公开代码。用户可以将包上载到文件系统,然后在本地文件上使用
pip
。谢谢罗兰-我已经添加了这些步骤作为一个单独的答案:。