我是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
有关如何解决此问题的任何想法?
答案 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")