2014-01-22 3 views
0

Когда я использую подпроцесс, чтобы открыть сценарий игры, используя мой скрипт меню, я получаю странную ошибку, которую я не могу исправить, даже если я попробую переустановить python или pygame. Я использую код неправильно или что-то в этом роде?Подпроцесс не работает ~ Открытие сценария игры с помощью сценария меню

~ ИНФОРМАЦИЯ ~ 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 

~ код, я использую для моего меню ~

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() 

ответ

0

Ваш первый аргумент Popen() - ['swfdump', 'main.py', '-d'], который должен выполнить что-то названное swfdump с аргументами main.py -d. Я подозреваю, вы хотите что-то другое. От the fine documentation:

args должен быть последовательностью аргументов программы или одной строкой. По умолчанию исполняемая программа является первым элементом в args, если args является последовательностью.

0

Try:

pprocess = Popen('swfdump main.py -d', shell=True, stdout=PIPE) 

Смотрите, если это работает. Если вы действительно хотите использовать список, вы можете сделать ['swfdump main.py -d',] и shell=False, вместо этого я думаю.

Смежные вопросы