我有一个奇怪的问题。
如果我打开两个cmd
,只需通过alt-tabbing从命令行运行每个脚本,下面的代码就可以工作。
# share1.py
import numpy
ram = numpy.memmap("bla",shape=4096,dtype=numpy.uint8,mode="w+")
for y in xrange(0,4096):
for x in xrange(0,4096):
ram[x]=65+y
print ram
-
# share2.py
import numpy
ram = numpy.memmap("bla",shape=4096,dtype=numpy.uint8,mode="readwrite")
for y in xrange(0,4096):
for x in xrange(0,4096):
m=ram[x]
print m,
print ram
这个有效! share2
会不断打印share1
所做的更改。
但是当我直接从python中生成相同的代码而不是cmd
时,突然间这不再起作用了,我不明白为什么。
我使用psutil
生成一个空的python进程,并通过stdin
提供代码。我忽略了stdout
,因此spawn中的任何print
最终都会在我用来运行脚本的主cmd
上输出。
share1
输出它设置的正确数字,而share2
只输出0,好像它根本没有看到映射。请注意,使用常规mmap
(非numpy`s)也会发生这种情况。
我做错了什么?
(编辑:意外地将share2
放在最后一个段落的开头,而不是share1
。)