我想在一台机器上运行一个IPython实例,并通过另一个进程(运行一些python命令)(通过LAN)连接到它。我了解zmq是可能的:http : //ipython.org/ipython-
doc/dev/development/ipythonzmq.html
。
但是,我找不到有关如何执行操作以及是否可行的文档。
任何帮助,将不胜感激!
编辑
我希望能够连接到IPython内核实例并将其发送给python命令。但是,这不应该通过图形工具(qtconsole)完成,但是我希望能够从其他python脚本中连接到该内核实例。
例如
somehow_connect_to_ipython_kernel_instance
instance.run_command("a=6")
如果要在另一个Python程序的内核中运行代码,最简单的方法是连接BlockingKernelManager。现在最好的例子是Paul
Ivanov的vim-ipython客户端,或IPython自己的终端客户端。
要点:
IPYTHONDIR/profile_<name>/security/kernel-<id>.json
其中包含各种客户端连接和执行代码所需的信息。一个工作示例:
在shell中,执行以下操作ipython kernel
(或ipython qtconsole
如果要与已经在运行的GUI共享内核,请执行以下操作):
$> ipython kernel
[IPKernelApp] To connect another client to this kernel, use:
[IPKernelApp] --existing kernel-6759.json
这写了’kernel-6759.json’文件
然后,您可以运行此Python代码段以连接KernelManager,并运行一些代码:
from IPython.lib.kernel import find_connection_file
from IPython.zmq.blockingkernelmanager import BlockingKernelManager
# this is a helper method for turning a fraction of a connection-file name
# into a full path. If you already know the full path, you can just use that
cf = find_connection_file('6759')
km = BlockingKernelManager(connection_file=cf)
# load connection info and init communication
km.load_connection_file()
km.start_channels()
def run_cell(km, code):
# now we can run code. This is done on the shell channel
shell = km.shell_channel
print
print "running:"
print code
# execution is immediate and async, returning a UUID
msg_id = shell.execute(code)
# get_msg can block for a reply
reply = shell.get_msg()
status = reply['content']['status']
if status == 'ok':
print 'succeeded!'
elif status == 'error':
print 'failed!'
for line in reply['content']['traceback']:
print line
run_cell(km, 'a=5')
run_cell(km, 'b=0')
run_cell(km, 'c=a/b')
运行的输出:
running:
a=5
succeeded!
running:
b=0
succeeded!
running:
c=a/b
failed!
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/Users/minrk/<ipython-input-11-fb3f79bd285b> in <module>()
----> 1 c=a/b
ZeroDivisionError: integer division or modulo by zero
有关如何解释回复的更多信息,请参见消息规范。如果相关,则stdout /
err和display数据将过来km.iopub_channel
,您可以使用返回的msg_id将shell.execute()
输出与给定执行关联。
PS:对于这些新功能的文档质量,我深表歉意。我们有很多工作要做。
我已经在我的默认VPC中创建了一个新的免费层windows 2019 EC2实例,新的EC2有一个公共IP,安全组允许来自任何地方的流量,并且RDP协议已配置为在端口3389上就绪。 我已经花了两天时间,没有运气从windows远程桌面连接到这个实例。 我试图从我的机器上ping ec2,但是没有成功。 从我的机器到ec2的telnet工作正常。我已禁用windows防火墙。 远程桌面有时要求我输
我已经创建了一个redis集群,它自己是工作的,但我不能连接我的客户到它。 我正在使用redisson连接到它,下面的代码 其中,redisURL是csv,格式为:,但包含集群中的所有6个节点。
在我们的项目中实现MBean(以独立模式部署在JBoss AS 7.1.1上)后,我使用JConsole执行了一些测试并创建了一个“本地进程”连接(使用JBoss PID的连接),这工作正常。可以看到、到达并返回预期值的MBean。但是我无法使用“远程进程”进行连接。 这是JMX子系统配置: 这是套接字配置: 我在那里找到了几种URL使用方法,但我用不同的建议端口(9990959510904447
我在A机上设置了伪分布式模式的Hadoop和Hbase,我正在B机上运行我的客户端(Java程序)(A机和B机可以互相通信)。但我这样做面临问题。 我的客户端代码如下所示: 配置config=HBaseConfiguration.create(); config.set(“HBase.ZookeePer.quorum”,zookeeperLocation);config.set(“hbase.zo
我们有一个Hazelcast节点集群,所有这些节点都运行在一个远程系统(具有许多节点的单个物理系统)上。我们希望从一个外部客户机连接到这个集群--一个Java应用程序,它使用如下代码连接到HazelCast: 其中,主机是远程的IP,端口是5701。 这仍然连接到本地主机(127.0.0.1)。我错过了什么? 编辑: 如果java客户端是本地系统上运行的唯一hazelcast应用程序,则它无法连接
问题内容: 我已经在服务器上安装了Kibana 5.4和Elastic search 5.4,我可以通过使用本地计算机上的curl来访问Kibana和Elastic search 我得到以下回应 var hashRoute =’/ app / kibana’; var defaultRoute =’/ app / kibana’; var hash = window.location.hash;