当前位置: 首页 > 知识库问答 >
问题:

Python-在Python进程之间轻松传递变量

方昊阳
2023-03-14

有件事我找了很长时间想解决却找不到。

如何在python进程之间传递变量,而不使用queuepipe

import multiprocessing

string = "hi"

def my_process():
  global string
  string = "success!" # but its only localy...


multiprocessing.Thread(target=my_process).start()

我正在寻找一种从不同的脚本或进程中更改变量的方法。

共有1个答案

程阳平
2023-03-14

最后,

我为Python创建了一个包来解决这个问题。

$ pip install guli

Guli不需要安装任何额外的PIP包。

Guli可用于在不同的Python脚本之间,在许多进程之间或在同一脚本处传递。 在主进程和另一个(多进程)进程之间传递变量。

  • 在不同的Python脚本之间传递变量。
  • 在“主进程”和另一个(多进程)进程之间传递变量。
  • 在同一脚本中使用变量。
  • 创建/删除/编辑-gulivariables.

Guli是开源的,在GitHub上有一个公共存储库。

import guli
import multiprocessing

string = guli.GuliVariable("hello").get()
print(string) # returns empty string ""

def my_function():
  ''' change the value from another process '''
  guli.GuliVariable("hello").setValue(4)

multiprocessing.Process(target=my_function).start()

import time
time.sleep(0.01) # delay after process to catch the update


string = guli.GuliVariable("hello").get()
print(string) # returns "success!!!"

Itai Gu写的包裹

希望我为很多人解决了这个问题!

 类似资料:
  • 问题内容: 我花了过去的几个小时在这里和其他地方进行阅读和实验,但是我并没有真正理解我确信这是一个非常基本的概念:在不同的函数之间传递值(作为变量)。 例如,我将一堆值分配给一个函数中的列表,然后想稍后在另一个函数中使用该列表: 基于对函数参数的作用的理解,我希望这样做如下: 将“列表”初始化为空列表;打电话给main(至少,我知道我没事…) 在defineAList()中,将某些值分配给列表;然

  • 问题内容: 我敢肯定这很简单,但是我一直无法使其正常工作。我需要让我的主要python脚本调用另一个python脚本,并将变量从原始脚本传递到我已调用的脚本 举一个简单的例子,我的第一个脚本是 我的第二个脚本是 我希望它可以打印x但我得到 我不确定导入是否是实现此目标的正确方法,但是如果有人可以通过简单的方式对此有所了解,那就太好了! 谢谢, 编辑 阅读评论后,我想我会扩展我的问题。Aswin M

  • 问题内容: 我创建了两个视图控制器。我从第一个到第二个创建了一个序列,以传递数据。现在,我想将数据从第二个视图控制器传递给第一个。我经历了许多类似的问题,但由于我缺乏关于放松工作原理的知识,因此无法实现这些问题。 ViewController.swift 这会将数据传递给视图控制器“ viewControllerB”中的dataPassed。 说,现在我想将一些数据从viewControllerB

  • 问题内容: 假设我有以下情况; 在重新标记的页面中,有一个链接将页面/ a定向到/ b。我尝试将变量a传递给页面/ b以重用它。我该怎么做这个Flask应用程序?我需要使用会话还是有其他解决方案? 问题答案: 如果要传递一些不需要用户查看或控制的python值,则可以使用会话: 会话的行为就像字典,并序列化为JSON。因此,你可以将可序列化JSON的任何内容放入会话中。但是,请注意,大多数浏览器不

  • 问题内容: 我是python的新手(我使用python 3),并且我尝试使用JSon中的一个字符串和两个列表作为成员序列化一个类。我发现python标准中有一个json库,但似乎我需要手动实现序列化方法。是否有一个JSon编码器,我可以在其中简单地传递一个对象,并以字符串形式接收序列化的对象,而无需实现序列化方法。例: 谢谢。 问题答案: 不了解任何预构建的内容,但是如果您的对象足够简单,则可以编

  • 问题内容: 抱歉,如果我的问题是菜鸟。我正在使用pgsql 8.4运行Django 1.2,并且需要在从用户处获得输入后运行Java程序,进行一些计算并将结果返回给用户。 我是否可以知道在Java和Python Django之间传递数据的最佳方法是什么,以便解决上述情况?我听说过Jython,但是根据Django文档,它需要扩展名jython- Django,但目前不支持django1.2.x。我

  • 轻松上传是魔方加密开发的快速上传组件。轻松上传的环境要求: Microsoft Windows 操作系统 Google Chrome 浏览器 使用步骤 安装轻松上传后,您可以通过以下步骤使用: 打开 Windows 资源管理器,选择需要上传的 PHP 文件 按下 CTRL+C 复制文件 打开魔方加密页面 按下 CTRL+V 粘贴文件 等待文件上传 安装方法 点击这里 打开 Chrome 网上应用店

  • 问题内容: 我正在尝试使用部分函数,​​以便pool.map()可以定位具有多个参数(在本例中为Lock()对象)的函数。 这是示例代码(摘自我之前的问题的答案): 但是,当我运行此代码时,出现错误: 我在这里想念什么?如何在子流程之间共享锁? 问题答案: 您不能将普通对象传递给方法,因为它们不能被腌制。有两种方法可以解决此问题。一种是创建并传递一个: 不过,这有点重量级;使用需要产生另一个进程来