का उपयोग कर py2exe के साथ विफल रहता है मैं py2exe का उपयोग करके एक स्टैंडअलोन एप्लिकेशन बनाने की कोशिश कर रहा हूं जो matplotlib और numpy पर निर्भर करता है।bundle_files = 1 matplotlib
import numpy as np
import pylab as plt
plt.figure()
a = np.random.random((16,16))
plt.imshow(a,interpolation='nearest')
plt.show()
py2exe (http://www.py2exe.org/index.cgi/MatPlotLib से संशोधित) के लिए सेटअप कोड यह है:: आवेदन के कोड यह है
from distutils.core import setup
import py2exe
import sys
sys.argv.append('py2exe')
opts = {
'py2exe': {"bundle_files" : 3,
"includes" : [ "matplotlib.backends",
"matplotlib.backends.backend_qt4agg",
"pylab", "numpy",
"matplotlib.backends.backend_tkagg"],
'excludes': ['_gtkagg', '_tkagg', '_agg2',
'_cairo', '_cocoaagg',
'_fltkagg', '_gtk', '_gtkcairo', ],
'dll_excludes': ['libgdk-win32-2.0-0.dll',
'libgobject-2.0-0.dll']
}
}
setup(console=[{"script" : "matplotlib_test.py"}],
zipfile=None,options=opts)
अब, जब bundle_files सेट किया गया है = 3 या अनुपस्थित है, सब ठीक काम करता है , लेकिन परिणामस्वरूप exe को ऐसी मशीन पर वितरित नहीं किया जा सकता है जो पाइथन, आदि के समान संस्करण के साथ कॉन्फ़िगर नहीं किया गया है। यदि मैं bundle_files = 1 सेट करता हूं, तो यह एक उपयुक्त बड़ी exe फ़ाइल बनाता है जिसमें सब कुछ बंडल होना चाहिए, लेकिन यह स्थानीय रूप से चलाने में विफल रहता है या वितरित। इस मामले में, मैं विंडोज 7 मशीन पर पाइथन 2.6.6 के साथ सब कुछ बना रहा हूं और पाइथन 2.6.4 के साथ स्थानीय रूप से और एक्सपी मशीन पर चलाने की कोशिश कर रहा हूं।
एक्सपी मशीन पर चलने पर मुझे मिली त्रुटियां अजीब लगती हैं, बंडल किए बिना, मुझे विन 7 पर कोई त्रुटि नहीं मिलती है। बंडलिंग के साथ, विन 7 ट्रेसबैक जानकारी की रिपोर्ट नहीं करता है, इसलिए मुझे यकीन नहीं है कि त्रुटियां हैं वही। अगर कोई मुझे एक दिशा है कि इस ठीक कर देंगे में इंगित कर सकते हैं
Traceback (most recent call last):
File "matplotlib_test.py", line 2, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "pylab.pyc", line 1, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "matplotlib\__init__.pyc", line 709, in <module>
File "matplotlib\__init__.pyc", line 627, in rc_params
File "matplotlib\__init__.pyc", line 565, in matplotlib_fname
File "matplotlib\__init__.pyc", line 240, in wrapper
File "matplotlib\__init__.pyc", line 439, in _get_configdir
RuntimeError: Failed to create C:\Documents and Settings\mnfienen/.matplotlib; c
onsider setting MPLCONFIGDIR to a writable directory for matplotlib configuratio
n data
अग्रिम में बहुत धन्यवाद: किसी भी मामले में, यहाँ XP पर त्रुटि संदेश है!
संपादित करें 1:
मैं विलियम की सलाह का पालन और MPLCONFIGDIR साथ समस्या तय है, लेकिन अब एक नया त्रुटि मिलती है:
:Traceback (most recent call last):
File "matplotlib\__init__.pyc", line 479, in _get_data_path
RuntimeError: Could not find the matplotlib data files
संपादित करें 2: मैं का उपयोग करके डेटा फ़ाइलों समस्या तय:
data_files=matplotlib.get_py2exe_datafiles()
यह एक नया त्रुटि की ओर जाता है:
Traceback (most recent call last):
File "matplotlib_test.py", line 5, in <module>
import matplotlib.pyplot as plt
File "matplotlib\pyplot.pyc", line 78, in <module>
File "matplotlib\backends\__init__.pyc", line 25, in pylab_setup
ImportError: No module named backend_wxagg
धन्यवाद विलियम। तो, मैंने MPLCONFIGDIR को बदलने की कोशिश की लेकिन यह एक लाल हेरिंग था। बाहर निकलता है, यहां तक कि आधार परीक्षण भी .py कोड XPLCONFIGDIR के बिना XP लिखने पर एक लिखने योग्य स्थान पर नहीं चलाया जाएगा, लेकिन अब मुझे एक नई त्रुटि मिलती है। उपरोक्त मूल प्रश्न में संपादित करें ..... – mishaF
ऐसा लगता है कि यह पहली बार ऐसा लगता है की तुलना में यह एक और गंभीर समस्या है। आपकी नई वर्तमान त्रुटि के लिए आप अपनी सूची में "matplotlib.backends.backend_tkagg" जोड़ने का प्रयास कर सकते हैं, लेकिन कुछ मुझे बता रहा है कि एक आसान और अधिक ठोस समाधान है जो चारों ओर तैर रहा है =/ – William
मजेदार- मैंने "matplotlib.backends.backend_tkagg डालने का प्रयास किया "शामिल नहीं है, लेकिन इसमें शामिल नहीं है। मैं मानता हूं, सोचा, वहां कहीं फ्राइंग करने के लिए एक बड़ी मछली है। – mishaF