python的标准sense实用程序

sense的Python项目详细描述


用于 ipython的实用程序

build status

此软件包补充了sense的rest 通过包装和 简化一些最常见的操作,如启动和 停止工人仪表板。它的主要目的是支持 实现集群计算高级方法的软件包。

安装

此软件包是在Sense上预装的。您可以使用

importsense

要在其他地方安装,请使用

pip install sense

示例

此示例启动多个工作仪表板并与 它们使用 ZeroMQ 通过项目的专用网络。

importtimeimportsensen_workers=3# Use 'install' to install package 'pyzmq' from PyPI to the project.sense.install('pyzmq')importzmq# Create the ZeroMQ server.context=zmq.Context()socket=context.socket(zmq.REP)# Use 'get_network_info' to find out the private IP address of the current# dashboard in the project's virtual private network.address="tcp://"+sense.network_info()['project_ip']+":5000"socket.bind(address)# Define code the worker dashboards should execute on startup.# Each worker will attempt to connect to the ZeroMQ server whose# address is stored in its 'SERVER' environment variable and then will send# a message to the server.worker_code="""
import os
# Because pyzmq was previously installed to the project, workers don't
# need to reinstall it.
import zmq
import sense

# Connect to the master
context = zmq.Context()
print "Connecting to master..."
socket = context.socket(zmq.REQ)
socket.connect(os.environ['SERVER'])

# Send a message
socket.send("Sense is so easy!")

# Wait for a reply
message = socket.recv()
print "Received reply: ", message
"""# Use 'launch_workers' to start three small worker dashboards. The above# code is sent to each, and the current dashboard's project IP address is# stored in each worker's environment as 'SERVER', so each worker will contact# the current dashboard.workers=sense.launch_workers(n=n_workers,size=0,code=worker_code,env={"SERVER":address})# Listen for worker messages.foriinrange(0,n_workers):#  Wait for next request from clientmessage=socket.recv()print"Received request: ",messagetime.sleep(1)socket.send("I agree.")sense.stop_workers()

API

安装

将python包安装到 pip 使用用户方案" rel="nofollow"> 方案

importsensesense.install(package_name,flags=[],arguments={})

如果愿意,还可以通过运行shell命令安装软件包 从ipython使用!前缀:

!pip install pyzmq --user

选项:

  • 标志 :要作为标志传递给PIP的字符串列表。例如, ["u", "使用镜像"] 将转换为命令行标志 -u --使用镜子
  • 参数 :包含要传递给pip的参数的dict。为了 例如, {"d": "./downloads", "镜像": "http://url"} 将 转换为命令行参数 -d /下载 --mirrors=http://url

一旦安装,项目的任何仪表板都可以导入包。

网络信息

以带键的dict格式返回当前仪表板的联系人信息 公共dns 公共端口映射 ssh\u密码 项目知识产权

importsensenetwork_info=sense.network_info()

每个项目都有自己的虚拟专用网络 (虚拟专用网)。 项目IP地址已绑定到项目VPN,并且只能访问 同一项目中的其他仪表板。vpn项目使 使用缺乏内置安全功能的集群计算框架, 如 MPI

公共dns主机名、公共端口映射和ssh密码描述 如何从项目外部联系当前仪表板。这个 公共端口映射是一个dict,其键和值是整数。只有 作为公共端口映射键的端口可以通过 公用DNS主机名。例如,如果在端口3000上运行服务,则 可以从Internet上公共DNS主机名上的任何位置访问 以及端口 公共端口映射[3000]

如果需要,可以使用公共dns主机名和 端口 带有用户名"sense"和ssh的公共端口映射[22] 。 密码。

启动工人

将工作仪表板启动到群集中。

importsenseworker_info=sense.launch_workers(n,size=0,engine="sense-ipython-engine",script="",code="",env={})

从某种意义上说,集群是一组具有相同主控形状的仪表板 小精灵猪油。工作仪表板将其输出多路传输到主仪表板和 在主服务器停止或出现故障时自动清除。这些 这些特性使得管理、监视和调试分布式 感官应用。

参数为:

  • n :要启动的工人数。
  • 大小 (可选):工人的大小,0到16。
  • 引擎 (可选):npm的名称 用作引擎的模块。默认为"sense ipython engine",但是 工人也可以运行其他发动机。
  • 脚本 (可选):工作进程应执行的脚本文件 发射时。路径是相对于项目的主文件夹的。
  • 代码 (可选):启动时工作程序应执行的代码。 如果两者都提供,脚本优先于代码。
  • env (可选):包含环境变量的dict 应在执行任何代码之前在工作线程上设置。这就是 将主联系人信息发送到的首选方式 工人。

返回值是一个dict列表。每个dict都描述了 已启动并包含键(如 "id" )的工作线程, "engine" "status" 等。完整格式记录在案

列出工人

返回群集中工作仪表板的信息 像发射工返回的录音一样。

importsenseworker_info=sense.list_workers()

获取主机

以类似于 由发射工返回的。

importsensemaster_info=sense.get_master()

阻止工人

停止工作仪表板。

仪表板的数字标识在dicts中的键 id 处可用 由List_Workers和Launch_Workers返回。返回值是 相同类型的dict。

importsense
0

获得授权

返回rest的身份验证信息 api 作为带键的dict "用户" "密码"

sense的rest api为您提供了对虚拟 感觉的方方面面。大多数rest调用都需要基本的 身份验证。 要进行经过身份验证的rest调用,请提供 获取所选的http客户端的身份验证,如python 请求 包。

默认情况下,get_auth使用环境变量sense_api_标记 身份验证。此令牌限制对当前项目的访问。为了 跨项目访问,可以手动传入凭据或设置 在环境中检测用户名和密码。为了更好 了解这些选项,请阅读了解项目 安全性< 文档。

经过身份验证的rest示例

此示例检索有关当前项目的信息:

importsense
1

本例中使用的环境变量对所有人都是通用的 所有引擎的仪表板都有文档记录 此处

丰富的仪表板输出

ipython提供自己的富显示。 系统 因此与它的 r不同 <HREF=http://github.com/senseplatform/sense-js-module" rel="nofollow">javascript 对应项此包不提供任何丰富的输出函数。 使用ipython丰富的显示系统在 仪表板。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Admob不使用webview   Java Wicket表单:序列化对象类“myClassName”时出错   java googledriveapi更新文件与我的帐户管理员   java简单框架未知xml标记解析   java如何使用主类和用户获取Spark应用程序ID   java如何更改自定义属性的值?   java有没有办法在jMock中找到未使用的期望值?   gradle运行任务的java文档?   java通过使用数组来存储文本文件的行,通过覆盖来删除文本文件中的行   用于表达式语言注入的java利用负载   java IDEStyle程序运行   java在运行时启用/禁用Springws   爪哇芦苇。formatNumber NullPointException   java为什么我的代码无法检测两个动态实体之间的碰撞?