2016-06-24 56 views
0

我是新來的python,我想從我做的python代碼中使用py2exe製作一個exe文件。我做了以下setup.py文件下面就如何使用py2exe教程:當我試圖在cmd中運行它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' at the beginning,and the etc before 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我相信這是一個示例,以表明'安裝程序'可以接受其他參數,並不意味着在字面上使用你的碼。 – DeepSpace

+0

Oooh好的...這工作。非常感謝你!! –