2016-06-24 27 views
0

私はpythonには新しく、私はpythonコードからpy2exeを使用してexeファイルを作成しようとしています。私はpy2exeを使用する方法についてのチュートリアル以下、次のsetup.pyファイルを作っ: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") 

私はCMDでそれを実行しようとすると、私は次のエラーを取得:

SyntaxError: non-keyword arg after keyword arg 

を私は他のいくつかを読みましたこのエラーの記事は、基本的に "data_files"の前に "etc"があるべきだと言っています。しかし、私がこれを行うと、私は名前エラーundefined name sysを取得します。

私はsetup.py

でこれを解決する方法上の任意のアイデアをmsvcr90.dllファイルをインクルードしたいですか?それはどこにも定義されていないとして、あなたはその後、etcと同じエラーが発生しますが、この問題を解決する

+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

(私は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

うんうん...それはうまくいった。どうもありがとうございました!! –