setup.py上的SyntaxError

时间:2016-06-24 17:22:44

标签: python py2exe

我是python的新手,我正在尝试使用py2exe从我制作的python代码创建一个exe文件。我按照如何使用py2exe的教程制作了以下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

我希望将msvcr90.dll文件包含在setup.py

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:2)

  

我已经阅读了其他几篇有关此错误的帖子,基本上说我应该在“data_files”之前使用“etc”。但是,当我这样做时,我收到名称错误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")