tôi không thể tìm ra cách để có thể gói này qua py2exe bây giờ:ImportError: Không có mô-đun tên mpl_toolkits với maptlotlib 1.3.0 và py2exe
Tôi đang chạy lệnh:
python setup2.py py2exe
qua python 2.7.5 và matplotlib 1.3.0 và 0.6.9 py2exe và 0.6.10dev
này đã làm việc với matplotlib 1.2.x
tôi đã đọc http://www.py2exe.org/index.cgi/ExeWithEggs và cố gắng thực hiện các các đề xuất để xử lý mpl_toolkits vì nó đã trở thành một gói không gian tên.
Tôi đang cố gắng để có được một câu trả lời ở đây quá: http://matplotlib.1069221.n5.nabble.com/1-3-0-and-py2exe-regression-td41723.html
Thêm một sản phẩm nào __init__.py
để mpl_toolkits làm cho nó hoạt động, nhưng đây chỉ là một cách giải quyết cho vấn đề.
bất cứ ai có thể đề xuất những gì tôi cần phải làm cho công việc py2exe với mpl_toolkits.axes_grid1 trong matplotlib 1.3.0:
test_mpl.py là:
from mpl_toolkits.axes_grid1 import make_axes_locatable, axes_size
if __name__ == '__main__':
print make_axes_locatable, axes_size
setup2 .py là:
import py2exe
import distutils.sysconfig
from distutils.core import setup
# attempts to get it to work
import modulefinder
import matplotlib
import mpl_toolkits.axes_grid1
__import__('pkg_resources').declare_namespace("mpl_toolkits")
__import__('pkg_resources').declare_namespace("mpl_toolkits.axes_grid1")
modulefinder.AddPackagePath("mpl_toolkits", matplotlib.__path__[0])
modulefinder.AddPackagePath("mpl_toolkits.axes_grid1", mpl_toolkits.axes_grid1.__path__[0])
# end of attempts to get it to work
options={'py2exe': {'packages' : ['matplotlib', 'mpl_toolkits.axes_grid1', 'pylab', 'zmq'],
'includes': ['zmq', 'six'],
'excludes': ['_gdk', '_gtk', '_gtkagg', '_tkagg', 'PyQt4.uic.port_v3', 'Tkconstants', 'Tkinter', 'tcl'],
'dll_excludes': ['libgdk-win32-2.0-0.dll',
'libgdk_pixbuf-2.0-0.dll',
'libgobject-2.0-0.dll',
'tcl85.dll',
'tk85.dll'],
'skip_archive': True },}
setup(console=['test_mpl.py'], options=options)
đầu ra là:
running py2exe
*** searching for required modules ***
Traceback (most recent call last):
File "setup2.py", line 23, in <module>
setup(console=['test_mpl.py'], options=options)
File "C:\Python27\lib\distutils\core.py", line 152, in setup
dist.run_commands()
File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Python27\lib\site-packages\py2exe\build_exe.py", line 243, in run
self._run()
File "C:\Python27\lib\site-packages\py2exe\build_exe.py", line 296, in _run
self.find_needed_modules(mf, required_files, required_modules)
File "C:\Python27\lib\site-packages\py2exe\build_exe.py", line 1308, in find_needed_modules
mf.import_hook(f)
File "C:\Python27\lib\site-packages\py2exe\mf.py", line 719, in import_hook
return Base.import_hook(self,name,caller,fromlist,level)
File "C:\Python27\lib\site-packages\py2exe\mf.py", line 136, in import_hook
q, tail = self.find_head_package(parent, name)
File "C:\Python27\lib\site-packages\py2exe\mf.py", line 204, in find_head_package
raise ImportError, "No module named " + qname
ImportError: No module named mpl_toolkits
bạn nên sử dụng pyinstaller, tốt nhất là có –
Chúng tôi dự định chuyển sang cx_freeze cho rằng không giống như pyinstaller, nó tương thích py3k, nhưng py2exe là đương nhiệm trong không gian này – RuiDC
pyinstaller có cùng lỗi, cx_Freeze không may có vấn đề với một số thủ thuật trong 1.7.x. – RuiDC