2016-06-24 11 views
0

Я новичок в python, и я пытаюсь создать exe-файл, используя py2exe, из кода python, который я сделал. Я сделал следующий файл setup.py после учебник о том, как использовать py2exe:SyntaxError on setup.py

from distutils.core import setup 
from glob import glob 
import py2exe 

setup(console=['App.py']) 

data_files = [("msvcr90.dll", glob(r'C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\msvcr90.dll\*.*'))] 
setup(data_files=data_files, etc) 

sys.path.append("C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\msvcr90.dll") 

Когда я пытаюсь запустить его в ЦМД я получаю следующее сообщение об ошибке:

SyntaxError: non-keyword arg after keyword arg 

Я прочитал несколько других сообщения об этой ошибке в основном говорят, что перед «data_files» я должен иметь «etc». Однако, когда я это делаю, я получаю ошибку имени undefined name sys.

Я хочу, чтобы включить msvcr90.dll файл с setup.py

Любые идеи о том, как это исправить?

+1

'import sys' в начале и т. Д. Перед data_files? – krork

ответ

2

I have read several other posts on this error basically saying that I should have the "etc" before "data_files". However when I do this, I get a name error undefined name sys

То есть решение этой проблемы, хотя вы затем столкнулись с теми же ошибками с etc как он нигде не определено (я считаю, что это предназначается, чтобы быть примером, чтобы показать, что setup может принимать другие аргументы, и не должны использоваться буквально в вашем коде).

Вы получаете undefined name sys, потому что это другой, несвязанный вопрос в вашем коде.

Вы должны добавить import sys.

from distutils.core import setup 
from glob import glob 
import py2exe 
import sys 

setup(console=['App.py']) 

data_files = [("msvcr90.dll", glob(r'C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\msvcr90.dll\*.*'))] 
setup(data_files=data_files) 

sys.path.append("C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\msvcr90.dll") 
+0

Спасибо! Да, это сработало, но теперь у меня есть «неопределенное имя и т. Д.». Честно говоря, я не уверен, зачем и т. Д. Это именно то, как это делается в учебнике. –

+1

@MarcoNunez Я считаю, что он предназначен для того, чтобы показать, что 'setup' может принимать другие аргументы и не должен использоваться буквально в вашем код. – DeepSpace

+0

Oooh ok ... Это сработало. Большое спасибо!! –

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

  • Нет связанных вопросов^_^