The*_*iel 2 python compiler-errors py2exe argparse
我想知道这可能是编译错误,还是我可以做些什么来阻止它显示.我为cmd制作了一个argparse程序.我使用py2exe编译它,当我运行它时,它正确地执行程序,但在运行代码之前总是会出现此错误:
Traceback (most recent call last):
File "boot_common.py", line 46, in <module>
ImportError: No module named 'ctypes'
Run Code Online (Sandbox Code Playgroud)
如果它是我的代码中的东西,这是我的脚本:
import argparse
import zipfile
import os
from contextlib import closing
def parse_args():
parser = argparse.ArgumentParser('ziputil '+\
'-m <mode> -f <file> -p <output>')
parser.add_argument('-f', action="store", dest='files', type=str,
help='-f <file> : Specify the files to be zipped, or the .zip to be unzipped.')
parser.add_argument('-m', action="store", dest='mode', type=str,
help='-m <mode> : Zip to zip files, UnZip, to unzip files, or ZipDir to zip entire directories.')
parser.add_argument('-p', action="store", dest='path', type=str, nargs='?', const=os.getcwd(),
help='-p <path> : specify the path to unpack/pack to.')
return vars(parser.parse_args())
def unzipPackage(path, files):
with zipfile.ZipFile(files, "r") as z:
z.extractall(path)
def zipPackage(path, files):
files = files.split(', ')
zf = zipfile.ZipFile(path, mode='w')
try:
for file in files:
zf.write(file)
finally:
zf.close()
def zipdir(path, zip):
for root, dirs, files in os.walk(path):
for file in files:
zip.write(os.path.join(root, file))
dict = parse_args()
files = dict['files']
path = dict['path']
mode = dict['mode']
if mode == 'Zip':
zipPackage(path, files)
elif mode == 'UnZip':
unzipPackage(path, files)
elif mode == 'ZipDir':
zipf = zipfile.ZipFile(path, 'w')
zipdir(files, zipf)
zipf.close()
Run Code Online (Sandbox Code Playgroud)
Vic*_*lio 13
这是由py2exe中的错误引起的,它将在下一个版本中修复.更多信息
该解决方案是添加ctypes到bootstrap_modules在C:\Python34\Lib\site-packages\py2exe\runtime.py文件(行117).
...
# modules which are always needed
bootstrap_modules = {
# Needed for Python itself:
"ctypes",
"codecs",
"io",
"encodings.*",
}
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6281 次 |
| 最近记录: |