debian.org / О Debian Где взять Debian Поддержка Уголок разработчика Новости Wiki

Автор Тема: [решено]wxPython нет модуля  (Прочитано 869 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн w.qazmju

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 17
[решено]wxPython нет модуля
« : 30 Сентябрь 2016, 14:29:47 »
во время работы скрипта возникает ошибка нет модуля wxPython
pip list говорит что он есть

скрипт решает эту проблему .. календарь рабочих смен (железнодорожный график)
сам скрипт ниже под спойлером скидывал на другой машине под цштвщцы  на портабном python ~е там работает.
Spoiler: ShowHide

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# generated by wxGlade 0.6.5 (standalone edition) on Fri Sep 30 01:34:18 2016

from wxPython.wx import *
from wxPython.calendar import *
#import wxPython
import wx
import datetime


stat1 = ['1 утро', '2 отсыпной', '3 ночь', '4 выходной']
stat2 = ['1 ночь', '2 выходной', '3 отсыпной', '4 утро']
stat3 = ['1 отсыпной', '2 утро', '3 выходной', '4 ночь']
stat4 = ['1 выходной', '2 ночь', '3 утро', '4 отсыпной']
thisday = datetime.datetime.date(datetime.datetime.today())

# begin wxGlade: extracode
# end wxGlade
def initmeen(thisday):
    stat0 = [u'1 утро', u'2 отсыпной', u'3 ночь', u'4 выходной']
    stat1 = [u'1 ночь', u'2 выходной', u'3 отсыпной', u'4 утро']
    stat2 = [u'1 отсыпной', u'2 утро', u'3 выходной', u'4 ночь']
    stat3 = [u'1 выходной', u'2 ночь', u'3 утро', u'4 отсыпной']
    a = str(thisday)
    b = '1000-01-04'
    a = a.split('-')
    b = b.split('-')
    aa = datetime.date(int(a[0]),int(a[1]),int(a[2]))
    bb = datetime.date(int(b[0]),int(b[1]),int(b[2]))
    cc = aa-bb
    dd = str(cc)
    s = int(dd.split()[0])%4
    if s == 0 :
        return stat0
    elif s == 1 :
        return stat1
    elif s == 2 :
        return stat2
    elif s == 3 :
        return stat3



class MyFrame(wxFrame):
    def __init__(self, *args, **kwds):
        kwds["style"] = wxDEFAULT_FRAME_STYLE
        wxFrame.__init__(self, *args, **kwds)
        self.calendar_ctrl_1 = wxCalendarCtrl(self, -1, style=wxCAL_MONDAY_FIRST)
        self.panel_24 = wxPanel(self, -1)
        self.label_41 = wxStaticText(self, -1, initmeen(thisday)[0])
        self.label_42 = wxStaticText(self, -1, initmeen(thisday)[1])
        self.label_43 = wxStaticText(self, -1, initmeen(thisday)[2])
        self.label_44 = wxStaticText(self, -1, initmeen(thisday)[3])
        self.panel_23 = wxPanel(self, -1)
        self.button_2 = wxButton(self, -1, "button_2")

        self.__set_properties()
        self.__do_layout()

        EVT_CALENDAR_SEL_CHANGED(self, self.calendar_ctrl_1.GetId(), self.ev_cal_sel)

    def __set_properties(self):
        # begin wxGlade: MyFrame.__set_properties
        self.SetTitle("ShiftWorkCalendar")
        # end wxGlade

    def __do_layout(self):
        # begin wxGlade: MyFrame.__do_layout
        sizer_5 = wxFlexGridSizer(1, 2, 0, 0)
        sizer_7 = wxBoxSizer(wxVERTICAL)
        sizer_5.Add(self.calendar_ctrl_1, 0, 0, 0)
        sizer_7.Add(self.panel_24, 1, wxEXPAND, 0)
        sizer_7.Add(self.label_41, 0, 0, 0)
        sizer_7.Add(self.label_42, 0, 0, 0)
        sizer_7.Add(self.label_43, 0, 0, 0)
        sizer_7.Add(self.label_44, 0, 0, 0)
        sizer_7.Add(self.panel_23, 1, wxEXPAND, 0)
        sizer_7.Add(self.button_2, 0, 0, 0)
        sizer_5.Add(sizer_7, 1, wxEXPAND, 0)
        self.SetSizer(sizer_5)
        sizer_5.Fit(self)
        self.Layout()
        self.Centre()
        # end wxGlade

    def ev_cal_sel(self, event):  # wxGlade: MyFrame.<event_handler>
        thisday = str(self.calendar_ctrl_1.PyGetDate())
        #print thisday
        wx.Window.SetLabel(self.label_41, initmeen(thisday)[0])
        wx.Window.SetLabel(self.label_42, initmeen(thisday)[1])
        wx.Window.SetLabel(self.label_43, initmeen(thisday)[2])
        wx.Window.SetLabel(self.label_44, initmeen(thisday)[3])
        event.Skip()

# end of class MyFrame
class MyApp(wxApp):
    def OnInit(self):
        wxInitAllImageHandlers()
        frame_1 = MyFrame(None, -1, "")
        self.SetTopWindow(frame_1)
        frame_1.Show()
        return 1

# end of class MyApp

if __name__ == "__main__":
    app = MyApp(0)
    app.MainLoop()


ps просьба ногами не бить это мой 3й скрипт на питоне
pps э... а както можно сделать ... этот скрипт портативным что ли


как понял согласно сообщениям гугла wxPython устаревшая библиотека и мол рекомендовано использовать библиотеку wx
переделал скрипт вроде работает (см.скрипт ниже)

Spoiler: ShowHide
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#
# generated by wxGlade 0.6.8 on Sat Oct  1 04:47:55 2016 from "/home/qwertyuiop/work/calendar.wxg"
#

import wx
import wx.calendar

# begin wxGlade: dependencies
import gettext
# end wxGlade

# begin wxGlade: extracode
# end wxGlade
import datetime

thisday = datetime.datetime.date(datetime.datetime.today())

def initmeen(thisday):
    stat0 = [u'1 утро', u'2 отсыпной', u'3 ночь', u'4 выходной']
    stat1 = [u'1 ночь', u'2 выходной', u'3 отсыпной', u'4 утро']
    stat2 = [u'1 отсыпной', u'2 утро', u'3 выходной', u'4 ночь']
    stat3 = [u'1 выходной', u'2 ночь', u'3 утро', u'4 отсыпной']
    a = str(thisday)
    b = '1000-01-04'
    a = a.split('-')
    b = b.split('-')
    aa = datetime.date(int(a[0]),int(a[1]),int(a[2]))
    bb = datetime.date(int(b[0]),int(b[1]),int(b[2]))
    cc = aa-bb
    dd = str(cc)
    s = int(dd.split()[0])%4
    if s == 0 :
        return stat0
    elif s == 1 :
        return stat1
    elif s == 2 :
        return stat2
    elif s == 3 :
        return stat3

class MyFrame(wx.Frame):
    def __init__(self, *args, **kwds):
        # begin wxGlade: MyFrame.__init__
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.calendar_ctrl_1 = wx.calendar.CalendarCtrl(self, wx.ID_ANY, style=wx.calendar.CAL_MONDAY_FIRST)
        self.panel_24 = wx.Panel(self, wx.ID_ANY)
        self.label_41 = wx.StaticText(self, wx.ID_ANY, _(initmeen(thisday)[0]))
        self.label_42 = wx.StaticText(self, wx.ID_ANY, _(initmeen(thisday)[1]))
        self.label_43 = wx.StaticText(self, wx.ID_ANY, _(initmeen(thisday)[2]))
        self.label_44 = wx.StaticText(self, wx.ID_ANY, _(initmeen(thisday)[3]))
        self.panel_23 = wx.Panel(self, wx.ID_ANY)
        #self.button_2 = wx.Button(self, wx.ID_ANY, _("button_2"))

        self.__set_properties()
        self.__do_layout()

        self.Bind(wx.calendar.EVT_CALENDAR_SEL_CHANGED, self.ev_cal_sel, self.calendar_ctrl_1)
        # end wxGlade

    def __set_properties(self):
        # begin wxGlade: MyFrame.__set_properties
        self.SetTitle(_("ShftClndrWrk2"))
        # end wxGlade

    def __do_layout(self):
        # begin wxGlade: MyFrame.__do_layout
        sizer_5 = wx.FlexGridSizer(1, 2, 0, 0)
        sizer_7 = wx.BoxSizer(wx.VERTICAL)
        sizer_5.Add(self.calendar_ctrl_1, 0, 0, 0)
        sizer_7.Add(self.panel_24, 1, wx.EXPAND, 0)
        sizer_7.Add(self.label_41, 0, 0, 0)
        sizer_7.Add(self.label_42, 0, 0, 0)
        sizer_7.Add(self.label_43, 0, 0, 0)
        sizer_7.Add(self.label_44, 0, 0, 0)
        sizer_7.Add(self.panel_23, 1, wx.EXPAND, 0)
        #sizer_7.Add(self.button_2, 0, 0, 0)
        sizer_5.Add(sizer_7, 1, wx.EXPAND, 0)
        self.SetSizer(sizer_5)
        sizer_5.Fit(self)
        self.Layout()
        self.Centre()
        # end wxGlade

    '''def ev_cal_sel(self, event):  # wxGlade: MyFrame.<event_handler>
        print "Event handler 'ev_cal_sel' not implemented!"
        event.Skip()'''
    def ev_cal_sel(self, event):  # wxGlade: MyFrame.<event_handler>
        thisday = str(self.calendar_ctrl_1.PyGetDate())
        #print thisday
        wx.Window.SetLabel(self.label_41, initmeen(thisday)[0])
        wx.Window.SetLabel(self.label_42, initmeen(thisday)[1])
        wx.Window.SetLabel(self.label_43, initmeen(thisday)[2])
        wx.Window.SetLabel(self.label_44, initmeen(thisday)[3])
        event.Skip()

# end of class MyFrame
class MyApp(wx.App):
    def OnInit(self):
        wx.InitAllImageHandlers()
        frame_1 = MyFrame(None, wx.ID_ANY, "")
        self.SetTopWindow(frame_1)
        frame_1.Show()
        return 1

# end of class MyApp

if __name__ == "__main__":
    gettext.install("app") # replace with the appropriate catalog name

    app = MyApp(0)
    app.MainLoop()
« Последнее редактирование: 01 Октябрь 2016, 13:39:01 от w.qazmju »
 

Русскоязычное сообщество Debian GNU/Linux

[решено]wxPython нет модуля
« : 30 Сентябрь 2016, 14:29:47 »


Теги:
 

[Решено] Не работает комбинация Ctrl+N в Debian 6.0.4 в своей программе...

Автор Leo

Ответов: 9
Просмотров: 2462
Последний ответ 11 Май 2012, 07:12:18
от Malaheenee
Firefox 17.0.8 [РЕШЕНО]

Автор s7x8dn

Ответов: 23
Просмотров: 2280
Последний ответ 09 Июнь 2015, 14:29:59
от sidbar
[Решено] Debian/kFreeBSD igmpproxy и Errno(45). Похоже нужно пересобрать ядро.

Автор 315th

Ответов: 3
Просмотров: 2180
Последний ответ 05 Январь 2014, 23:53:41
от sunny_side
[Решено]Как собрать usb-imagewriter без gksu?

Автор amd_amd

Ответов: 4
Просмотров: 1047
Последний ответ 03 Январь 2017, 16:24:49
от amd_amd
[Решено]apt, тонкая настройка. Один пакет из jessie установить в wheezy.

Автор GRAY_BW

Ответов: 3
Просмотров: 7559
Последний ответ 03 Июль 2013, 23:22:45
от Tammy