Python py2exe—中的Matplotlib;ImportError:无法导入名称dist(文件“distutils\”uuu init“uuuu.pyc”)
Matplotlib在此应用程序中工作非常完美。。但由于某些原因,不能在构建中工作。为什么? 我很乐意接受任何对我有帮助的建议 .exe.log:Python py2exe—中的Matplotlib;ImportError:无法导入名称dist(文件“distutils\”uuu init“uuuu.pyc”),python,matplotlib,py2exe,importerror,distutils,Python,Matplotlib,Py2exe,Importerror,Distutils,Matplotlib在此应用程序中工作非常完美。。但由于某些原因,不能在构建中工作。为什么? 我很乐意接受任何对我有帮助的建议 .exe.log: Traceback (most recent call last): File "main.py", line 3, in <module> File "zipextimporter.pyc", line 82, in load_module File "matplotlib\__init__.pyc", line 103,
Traceback (most recent call last):
File "main.py", line 3, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "matplotlib\__init__.pyc", line 103, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "distutils\__init__.pyc", line 25, in <module>
ImportError: cannot import name dist
# encoding: utf-8
import os
import sys
import errno
sys.path.append(os.path.abspath("."))
from distutils.core import setup
import shutil
import py2exe
import matplotlib as mpl
mpl.use('Agg')
distDir = 'dist'
shutil.rmtree('build', ignore_errors=True)
shutil.rmtree(distDir, ignore_errors=True)
try:
os.makedirs(distDir)
except OSError as exc:
if exc.errno == errno.EEXIST and os.path.isdir(distDir):
pass
else:
raise
icon = 'icon.ico'
includes = ['matplotlib', 'numpy']
packages = ['matplotlib', 'pytz']
excludes = [
'_gtkagg', '_tkagg', 'bsddb', 'curses', 'email',
'pywin.debugger', 'pywin.debugger.dbgcon', 'pywin.dialogs',
'tcl', 'Tkconstants', 'Tkinter', 'sqlite3', 'doctest', 'test'
]
dll_excludes = [
'libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'libgdk_pixbuf-2.0-0.dll',
'tcl84.dll', 'tk84.dll', 'w9xpopen.exe'
]
data_files = mpl.get_py2exe_datafiles()
class Target(object):
def __init__(self, **kw):
self.__dict__.update(kw)
icon_resources = [(0, icon)]
GUI2Exe_Target = Target(
script='main.py',
dest_base='app_name',
name='app_name',
company_name='company_name',
copyright='company_name',
version='0.0.1',
icon_resources=icon_resources,
bitmap_resources=[],
other_resources=[]
)
setup(
options={
"py2exe": {
"compressed": 1,
"optimize": 0,
"includes": includes,
"excludes": excludes,
"packages": packages,
"dll_excludes": dll_excludes,
"bundle_files": 1,
"dist_dir": distDir,
"skip_archive": False,
"xref": False,
"ascii": False,
"custom_boot_script": '',
}
},
zipfile=None,
data_files=data_files,
console=[],
windows=[GUI2Exe_Target],
service=[],
com_server=[],
ctypes_com_server=[]
)
..
matplotlib==1.3.1
numpy==1.8.2
..
Python 2.7.6
build.py:
Traceback (most recent call last):
File "main.py", line 3, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "matplotlib\__init__.pyc", line 103, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "distutils\__init__.pyc", line 25, in <module>
ImportError: cannot import name dist
# encoding: utf-8
import os
import sys
import errno
sys.path.append(os.path.abspath("."))
from distutils.core import setup
import shutil
import py2exe
import matplotlib as mpl
mpl.use('Agg')
distDir = 'dist'
shutil.rmtree('build', ignore_errors=True)
shutil.rmtree(distDir, ignore_errors=True)
try:
os.makedirs(distDir)
except OSError as exc:
if exc.errno == errno.EEXIST and os.path.isdir(distDir):
pass
else:
raise
icon = 'icon.ico'
includes = ['matplotlib', 'numpy']
packages = ['matplotlib', 'pytz']
excludes = [
'_gtkagg', '_tkagg', 'bsddb', 'curses', 'email',
'pywin.debugger', 'pywin.debugger.dbgcon', 'pywin.dialogs',
'tcl', 'Tkconstants', 'Tkinter', 'sqlite3', 'doctest', 'test'
]
dll_excludes = [
'libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'libgdk_pixbuf-2.0-0.dll',
'tcl84.dll', 'tk84.dll', 'w9xpopen.exe'
]
data_files = mpl.get_py2exe_datafiles()
class Target(object):
def __init__(self, **kw):
self.__dict__.update(kw)
icon_resources = [(0, icon)]
GUI2Exe_Target = Target(
script='main.py',
dest_base='app_name',
name='app_name',
company_name='company_name',
copyright='company_name',
version='0.0.1',
icon_resources=icon_resources,
bitmap_resources=[],
other_resources=[]
)
setup(
options={
"py2exe": {
"compressed": 1,
"optimize": 0,
"includes": includes,
"excludes": excludes,
"packages": packages,
"dll_excludes": dll_excludes,
"bundle_files": 1,
"dist_dir": distDir,
"skip_archive": False,
"xref": False,
"ascii": False,
"custom_boot_script": '',
}
},
zipfile=None,
data_files=data_files,
console=[],
windows=[GUI2Exe_Target],
service=[],
com_server=[],
ctypes_com_server=[]
)
..
matplotlib==1.3.1
numpy==1.8.2
..
Python 2.7.6
pip冻结:
Traceback (most recent call last):
File "main.py", line 3, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "matplotlib\__init__.pyc", line 103, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "distutils\__init__.pyc", line 25, in <module>
ImportError: cannot import name dist
# encoding: utf-8
import os
import sys
import errno
sys.path.append(os.path.abspath("."))
from distutils.core import setup
import shutil
import py2exe
import matplotlib as mpl
mpl.use('Agg')
distDir = 'dist'
shutil.rmtree('build', ignore_errors=True)
shutil.rmtree(distDir, ignore_errors=True)
try:
os.makedirs(distDir)
except OSError as exc:
if exc.errno == errno.EEXIST and os.path.isdir(distDir):
pass
else:
raise
icon = 'icon.ico'
includes = ['matplotlib', 'numpy']
packages = ['matplotlib', 'pytz']
excludes = [
'_gtkagg', '_tkagg', 'bsddb', 'curses', 'email',
'pywin.debugger', 'pywin.debugger.dbgcon', 'pywin.dialogs',
'tcl', 'Tkconstants', 'Tkinter', 'sqlite3', 'doctest', 'test'
]
dll_excludes = [
'libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'libgdk_pixbuf-2.0-0.dll',
'tcl84.dll', 'tk84.dll', 'w9xpopen.exe'
]
data_files = mpl.get_py2exe_datafiles()
class Target(object):
def __init__(self, **kw):
self.__dict__.update(kw)
icon_resources = [(0, icon)]
GUI2Exe_Target = Target(
script='main.py',
dest_base='app_name',
name='app_name',
company_name='company_name',
copyright='company_name',
version='0.0.1',
icon_resources=icon_resources,
bitmap_resources=[],
other_resources=[]
)
setup(
options={
"py2exe": {
"compressed": 1,
"optimize": 0,
"includes": includes,
"excludes": excludes,
"packages": packages,
"dll_excludes": dll_excludes,
"bundle_files": 1,
"dist_dir": distDir,
"skip_archive": False,
"xref": False,
"ascii": False,
"custom_boot_script": '',
}
},
zipfile=None,
data_files=data_files,
console=[],
windows=[GUI2Exe_Target],
service=[],
com_server=[],
ctypes_com_server=[]
)
..
matplotlib==1.3.1
numpy==1.8.2
..
Python 2.7.6
python--版本:
Traceback (most recent call last):
File "main.py", line 3, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "matplotlib\__init__.pyc", line 103, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "distutils\__init__.pyc", line 25, in <module>
ImportError: cannot import name dist
# encoding: utf-8
import os
import sys
import errno
sys.path.append(os.path.abspath("."))
from distutils.core import setup
import shutil
import py2exe
import matplotlib as mpl
mpl.use('Agg')
distDir = 'dist'
shutil.rmtree('build', ignore_errors=True)
shutil.rmtree(distDir, ignore_errors=True)
try:
os.makedirs(distDir)
except OSError as exc:
if exc.errno == errno.EEXIST and os.path.isdir(distDir):
pass
else:
raise
icon = 'icon.ico'
includes = ['matplotlib', 'numpy']
packages = ['matplotlib', 'pytz']
excludes = [
'_gtkagg', '_tkagg', 'bsddb', 'curses', 'email',
'pywin.debugger', 'pywin.debugger.dbgcon', 'pywin.dialogs',
'tcl', 'Tkconstants', 'Tkinter', 'sqlite3', 'doctest', 'test'
]
dll_excludes = [
'libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'libgdk_pixbuf-2.0-0.dll',
'tcl84.dll', 'tk84.dll', 'w9xpopen.exe'
]
data_files = mpl.get_py2exe_datafiles()
class Target(object):
def __init__(self, **kw):
self.__dict__.update(kw)
icon_resources = [(0, icon)]
GUI2Exe_Target = Target(
script='main.py',
dest_base='app_name',
name='app_name',
company_name='company_name',
copyright='company_name',
version='0.0.1',
icon_resources=icon_resources,
bitmap_resources=[],
other_resources=[]
)
setup(
options={
"py2exe": {
"compressed": 1,
"optimize": 0,
"includes": includes,
"excludes": excludes,
"packages": packages,
"dll_excludes": dll_excludes,
"bundle_files": 1,
"dist_dir": distDir,
"skip_archive": False,
"xref": False,
"ascii": False,
"custom_boot_script": '',
}
},
zipfile=None,
data_files=data_files,
console=[],
windows=[GUI2Exe_Target],
service=[],
com_server=[],
ctypes_com_server=[]
)
..
matplotlib==1.3.1
numpy==1.8.2
..
Python 2.7.6
好的,我没有找到解决这个问题的正确方法 我用肮脏的黑客解决了这个问题,简单地用系统python的distutils dir替换了venv中的distutils dir。现在一切都在运行,而且在venv中运行不过,我不太确定这样做的缺点 我能理解的问题是,venv的区别真的很奇怪。似乎venvwrapper或/和python包出于某种原因改变了它,我不知道
如果您对这种情况有所了解,请继续并将其作为答案或评论添加到帖子中。:)
distutils
模块是否安装在python中?@yogeeshsseralathan是的。我刚检查过。我可以从distutils导入dist,在当前VirtualVwrapper环境中导入dist
。