मैं py2exe-0.6.9.win32 उपयोग करने के लिए जुड़े डाउनलोड फ़ाइल नाम के साथ निम्न वस्तु लाइब्रेरी का उपयोग कर एक आवेदन है कि मैं Python2.6.5 में लिखा है लपेट के लिए कोशिश कर रहा हूँ:py2exe और नहीं मिल रहा Numpy
matplotlib -0.99.3.win32
scipy-0.8.0b1-Win32
wxPython2.8-Win32-यूनिकोड-2.8.11.0
जब मैं परिणामी .exe फ़ाइल लॉन्च करने का प्रयास करता हूं तो मुझे त्रुटि संदेश मिल रहा है। फिलहाल, त्रुटि संदेश numpy से संबंधित है, हालांकि इससे पहले कि मैं matplot lib डेटा फ़ाइलों से संबंधित कुछ प्राप्त कर रहा था लोड नहीं कर रहा था और इस प्रकार मेरी exe फ़ाइल के लॉन्च को अवरुद्ध कर रहा था।
कोड की एक मील और सभी त्रुटि संदेशों को पोस्ट करने के बजाय, मैं एक और सामान्य प्रश्न पोस्ट कर रहा हूं: क्या कोई मुझे इन ऑब्जेक्ट लाइब्रेरीज़ और संस्करणों को काम करने के लिए py2exe का उपयोग करके एक साथ अच्छी तरह से खेलने के लिए कुछ निर्देश दिखा सकता है exe फ़ाइल?
मैं ऐसी चीजें पढ़ रहा हूं जो विषय पर Google खोजों के साथ आते हैं, लेकिन ऐसा लगता है कि हर कोई एक जंगली हंस का पीछा करता है जिसमें हर कोई अलग-अलग चीजों के विभिन्न संस्करणों का उपयोग कर रहा है। मैं इनमें से कुछ ऑब्जेक्ट लाइब्रेरीज़ के कुछ संस्करणों को बदल सकता हूं यदि इससे कोई फर्क पड़ता है, लेकिन मैंने इस सिग्नल प्रोसेसिंग एप्लिकेशन में कोड की 5000 लाइनें पहले ही लिखी हैं, और मैं इसे सब फिर से लिखना नहीं चाहूंगा, अगर मुमकिन।
संपादित करें:
यहाँ GUIdiagnostics.py नामक एक फ़ाइल में अपने कोड का एक सरलीकृत संस्करण है कि मैं अपने py2exe स्क्रिप्ट की क्षमता सभी पुस्तकालयों है कि मैं में आवश्यकता आयात करने के लिए परीक्षण करने के लिए किया जाता है मेरा असली आवेदन:
:import time
import wxversion
import wx
import csv
import os
import pylab as p
from scipy import stats
import math
from matplotlib import *
from numpy import *
from pylab import *
import scipy.signal as signal
import scipy.optimize
import Tkinter
ID_EXIT = 130
class MainWindow(wx.Frame):
def __init__(self, parent,id,title):
wx.Frame.__init__(self,parent,wx.ID_ANY,title, size = (500,500), style = wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE)
# A button
self.button =wx.Button(self, label="Click Here", pos=(160, 120))
self.Bind(wx.EVT_BUTTON,self.OnClick,self.button)
# the combobox Control
self.sampleList = ['first','second','third']
self.lblhear = wx.StaticText(self, label="Choose TestID to filter:", pos=(20, 75))
self.edithear = wx.ComboBox(self, pos=(160, 75), size=(95, -1), choices=self.sampleList, style=wx.CB_DROPDOWN)
# the progress bar
self.progressMax = 3
self.count = 0
self.newStep='step '+str(self.count)
self.dialog = None
#-------Setting up the menu.
# create a new instance of the wx.Menu() object
filemenu = wx.Menu()
# enables user to exit the program gracefully
filemenu.Append(ID_EXIT, "E&xit", "Terminate the program")
#------- Creating the menu.
# create a new instance of the wx.MenuBar() object
menubar = wx.MenuBar()
# add our filemenu as the first thing on this menu bar
menubar.Append(filemenu,"&File")
# set the menubar we just created as the MenuBar for this frame
self.SetMenuBar(menubar)
#----- Setting menu event handler
wx.EVT_MENU(self,ID_EXIT,self.OnExit)
self.Show(True)
def OnExit(self,event):
self.Close(True)
def OnClick(self,event):
try:
if not self.dialog:
self.dialog = wx.ProgressDialog("Progress in processing your data.", self.newStep,
self.progressMax,
style=wx.PD_CAN_ABORT
| wx.PD_APP_MODAL
| wx.PD_SMOOTH)
self.count += 1
self.newStep='Start'
(keepGoing, skip) = self.dialog.Update(self.count,self.newStep)
TestID = self.edithear.GetValue()
self.count += 1
self.newStep='Continue.'
(keepGoing, skip) = self.dialog.Update(self.count,self.newStep)
myObject=myClass(TestID)
print myObject.description
self.count += 1
self.newStep='Finished.'
(keepGoing, skip) = self.dialog.Update(self.count,self.newStep)
self.count = 0
self.dialog.Destroy()
except:
self.dialog.Destroy()
import sys, traceback
xc = traceback.format_exception(*sys.exc_info())
d = wx.MessageDialog(self, ''.join(xc),"Error",wx.OK)
d.ShowModal() # Show it
d.Destroy() #finally destroy it when finished
class myClass():
def __init__(self,TestID):
self.description = 'The variable name is: '+str(TestID)+'. '
app = wx.PySimpleApp()
frame = MainWindow(None,-1,"My GUI")
app.MainLoop()
यहाँ setup.py के लिए कोड है, जो मेरी py2exe कोड युक्त फ़ाइल है
मैं खिड़कियों के कमांड लाइन इंटरफेस (cmd.exe) में निम्न पंक्ति टाइप करके इस कोड को चलाने के नीचे दिए गए लिंक के अनुसार:
setup.py py2exe
Py2exe तो चलाता है, लेकिन जब मैं जिसके परिणामस्वरूप शुरू करने की कोशिश
Traceback (most recent call last):
File "setup.py", line 6, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "pylab.pyo", line 1, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "matplotlib\pylab.pyo", line 206, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "matplotlib\mpl.pyo", line 3, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "matplotlib\axes.pyo", line 14, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "matplotlib\collections.pyo", line 21, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "matplotlib\backend_bases.pyo", line 32, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "matplotlib\widgets.pyo", line 12, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "matplotlib\mlab.pyo", line 388, in <module>
TypeError: unsupported operand type(s) for %: 'NoneType' and 'dict'
किसी को भी मुझे दिखा सकते हैं कि कैसे setup.py संपादित करने के लिए इतना है कि py2exe एक प्रयोग करने योग्य निष्पादन योग्य चल numpy, scipy, matplotlib, आदि बना सकते हैं: exe फ़ाइल, यह एक लॉग फ़ाइल निम्न संदेश युक्त बनाता है?
दूसरा संपादित करें:
ठीक है। मैंने आज आरसी की सलाह फिर से कोशिश की कि मेरे पास इसके लिए एक नया दिमाग है, और मुझे एक ही त्रुटि मिली है, लेकिन मैं इसे नीचे शामिल कर रहा हूं। यहां cxsetup.py नामक फ़ाइल के लिए कोड है जिसे मैंने टेम्पलेट के बाद बनाया है: http://cx-freeze.sourceforge.net/cx_Freeze.html।
ImportError: No module named cx_Freeze
निर्देशिका में:
python cxsetup.py build
कमांड लाइन में निम्न त्रुटि उत्पन्न करता है:
from cx_Freeze import setup, Executable
setup(
name = "Potark",
version = "0.1",
description = "My application.",
executables = [Executable("Potark-ICG.py")])
दुर्भाग्य से, कमांड लाइन (cmd.exe) कमांड के साथ में यह चल रहा है कमांड लाइन मेरे एप्लिकेशन के लिए निर्देशिका है, जो डेस्कटॉप के उपफोल्डर में है। यह अजगर अनुप्रयोग के लिए निर्देशिका से अलग है, लेकिन मुझे लगता है कि cmd.exe इसे समझ सकता है क्योंकि पाइथन इसे समझ सकता है। क्या मैं गलत हूँ? एक परीक्षण के रूप में, मैं cxsetup.py की पहली पंक्ति के लिए कोड की निम्न पंक्ति कहा:
import matplotlib
लेकिन वह लगभग समान त्रुटि उत्पन्न:
ImportError: No module named matplotlib
मैं इस सूत्र रखने की कोशिश की है केंद्रित और छोटा, लेकिन यह बहुत लंबा हो रहा है। क्या कोई इस से मेरी सहायता कर सकता है? http://www.py2exe.org/index.cgi/MatPlotLib
लगता है: मैं स्विचन के सभी काम करने के लिए केवल cx_freeze को खोजने के लिए है कि यह numpy, matplotlib, scipy, आदि के साथ काम नहीं कर सकता
शायद आप सीएक्सफ़्रीज़ के साथ प्रयास कर सकते हैं और देख सकते हैं कि यह एक काम कर रहे exe –
(हटाए गए क्षमा करें) –
धन्यवाद करने में मदद करता है। मैंने कोशिश की, लेकिन मुझे सीएक्सफ्रीज़ से एक अलग त्रुटि संदेश मिल रहा है और मैं इस थ्रेड को ध्यान में रखना पसंद करूंगा ताकि मैं लोगों को बहुत अधिक कोड या बहुत से त्रुटि संदेशों से भ्रमित न करूं। प्रोग्रामिंग का यह पहलू मेरे लिए नया है। – MedicalMath