python - 在 python 中,如何跨脚本共享变量?

  显示原文与译文双语对照的内容

以下工作不正常

one.py


import shared


shared.value = 'Hello'


raw_input('A cheap way to keep process alive..')



two.py


import shared


print shared.value



在以下两个命令行上运行:


>>python one.py


>>python two.py



( 第二个属性获取了一个属性错误,。

是否有办法实现这一点,即在两个脚本之间共享一个?

时间:

不能将所需的信息存储在解释器的两个实例外部的某个地方。
如果只需要简单的变量,就可以轻松地将 python in转储到脚本1 中的文件中,然后重新加载它。 例如:

one.py


import pickle



shared = {"Foo":"Bar","Parrot":"Dead"}


fp = open("shared.pkl","w")


pickle.dump(shared, fp)



two.py


import pickle



fp = open("shared.pkl")


shared = pickle.load(fp)


print shared["Foo"]



sudo apt可以安装 memcached python

one.py


import memcache


shared = memcache.Client(['127.0.0.1:11211'], debug=0)


shared.set('Value', 'Hello')



two.py


import memcache


shared = memcache.Client(['127.0.0.1:11211'], debug=0) 


print shared.get('Value')



你在这里尝试做什么( 将共享状态存储在独立的python 解释器上的python 模块中) 将不起作用。

可以通过一个模块更新模块中的值,然后由另一个模块读取,但这必须在同一 python 解释器中。 实际上,这是一种进程间通信;这可以通过两个进程之间的socket通信来实现。

...