Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 子进程不工作~打开游戏脚本,带有菜单脚本_Python_Python 2.7_Pygame - Fatal编程技术网

Python 子进程不工作~打开游戏脚本,带有菜单脚本

Python 子进程不工作~打开游戏脚本,带有菜单脚本,python,python-2.7,pygame,Python,Python 2.7,Pygame,当我使用subprocess使用菜单脚本打开我的游戏脚本时,我遇到了一个奇怪的错误,即使我尝试重新安装python或pygame,似乎也无法修复。我是不是用错代码了 ~z~信息~ Python版本2.7.6 Pygame Verison 1.9.1 ~给定错误~ > > Traceback (most recent call last): File "C:\Users\Jason\Desktop\Maze\menu.py", line 22, in <module>

当我使用subprocess使用菜单脚本打开我的游戏脚本时,我遇到了一个奇怪的错误,即使我尝试重新安装python或pygame,似乎也无法修复。我是不是用错代码了

~z~信息~ Python版本2.7.6 Pygame Verison 1.9.1

~给定错误~

> > Traceback (most recent call last):   File "C:\Users\Jason\Desktop\Maze\menu.py", line 22, in <module>
>     subprocess = Popen(['swfdump', 'main.py', '-d'], stdout=PIPE)   File "C:\Python27\lib\subprocess.py", line 709, in __init__
>     errread, errwrite)   File "C:\Python27\lib\subprocess.py", line 957, in _execute_child
>     startupinfo) WindowsError: [Error 2] The system cannot find the file specified

Popen()
的第一个参数是
['swfdump','main.py','-d']
,它将执行 名为
swfdump
的东西,带有参数
main.py-d
。我猜,你想要不同的东西。发件人:

args应该是程序参数序列,或者是单个字符串。默认情况下,如果args是序列,则要执行的程序是args中的第一项

尝试:

看看这是否有效。如果你真的想使用一个列表,你可以做
['swfdump main.py-d',]
shell=False

    import pygame
import dumbmenu as dm
pygame.init()
from subprocess import Popen, PIPE

# Just a few static variables
red   = 255,  0,  0
green =   0,255,  0
blue  =   0,  0,255

size = width, height = 340,240  
screen = pygame.display.set_mode(size)
screen.fill(blue)
pygame.display.update()
pygame.key.set_repeat(500,30)

choose = dm.dumbmenu(screen, [
                        'Start Game',
                        'Quit Game'], 64,64,None,32,1.4,green,red)

if choose == 0:
    pprocess = Popen(['swfdump', 'main.py', '-d'], stdout=PIPE)
    stdout, stderr = process.communicate()
elif choose == 1:    
    pygame.quit()
exit()
pprocess = Popen('swfdump main.py -d', shell=True, stdout=PIPE)