从外部脚本或命令修改/访问python实例

时间:2019-06-01 10:48:55

标签: python instance external

我有一个主要的python代码(在启动时运行),其中包含一个类的实例。我希望能够(以用户身份)修改此实例(其参数)。这样做的想法是能够对其进行修改而不会打扰主代码或强迫它每2秒读取一次外部脚本。因此,我将能够运行bash命令或新的python脚本来修改在主运行脚本中创建的该实例。

我使用python 3,虽然已经/尝试了不同的事情:

  • 编写一个带有打开的套接字的方法,该方法在与实例相对应的类中进行侦听。对我来说似乎太过分了。
  • 能够使用某些工具(例如ctypes和id)从其内存地址访问实例。但是我以这种方式出错(细分错误)

从1号航站楼出发:

>>> a='c'
>>> hex(id(a))
'0x7fc9f825a378'

从2号航站楼出发:

>>> import ctypes
>>> d = (ctypes.c_char).from_address(0x7fc9f825a378)
>>> d
Segmentation fault (core dumped)

那么,如何以用户身份从archlinux操作系统中的运行脚本中修改实例?

非常感谢您的时间

1 个答案:

答案 0 :(得分:0)

我确实了解了有关python共享内存的所有内容。但是我没有找到任何解决方案,只能在POSIX系统上共享字典或“ normal” 数组。

  • sysv_ipc posix_ipc 使用缓冲区存储字符串,使一切复杂(需要解析)。

  • 多处理允许执行此操作,但是在同一脚本中,没有ID /密钥可以从另一个python实例访问它。

  • SharedArray 可以执行此操作,但要使用numpy数组。

您知道共享内存python库,该库允许简单地共享诸如字典或普通列表之类的对象吗?

感谢您的时间。