Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 27, 2015 07:13:51

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

AttributeError: 'module' object has no attribute 'MIME_TYPE'

ajk
В найденном файле /usr/local/lib/python2.6/dist-packages/magic.py константа MIME_TYPE отсутствует. Кстати, есть ещё каталог /usr/local/lib/python3.1/dist-packages,

А может проще Ubuntu обновить? А то зачем использовать дистрибутив 6 летней давности?

Офлайн

#2 Янв. 27, 2015 07:20:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

AttributeError: 'module' object has no attribute 'MIME_TYPE'

ajk
У меня Убунта и установка модулей идет через apt-get install python-magic
но rpm есть и он говорит
Ну, там в apt должен быть аналогичный просмотр содержимого пакета. Просто нужно просмотреть эти пути, чтобы убедиться, что ты смотришь именно тот файл.

ajk
В найденном файле /usr/local/lib/python2.6/dist-packages/magic.py
А что он делает в /usr/local ? Туда обычно ставятся пакеты, которых нет в репозитории.

ajk
При тупом же добавлении оной константы, скрипт на том же месте требует еще некий модуль
Возможно, у тебя питон неправильно установлен.

Система тоже, походу, старая. Версия питона 3.1 была давным давно в репозитории.
[guest@localhost ~]$ rpm -q python3
python3-3.3.2-9.fc20.i686
[guest@localhost ~]$
У меня в 20-й федоре (тоже не новая) в репозитории версия 3.3 уже.



Отредактировано py.user.next (Янв. 27, 2015 07:21:57)

Офлайн

#3 Янв. 27, 2015 07:27:50

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

AttributeError: 'module' object has no attribute 'MIME_TYPE'

у вас должно быть

magic.MAGIC_MIME
вместо
magic.MIME_TYPE
там, походу, сильно версии отличаются



————————————————
-*- Simple is better than complex -*-

Офлайн

#4 Янв. 27, 2015 21:25:48

ajk
Зарегистрирован: 2015-01-24
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

AttributeError: 'module' object has no attribute 'MIME_TYPE'

Есть мнение (на форуме Убунту), что все дело в версии 2.6 против 2.7 у автора.

Чё делать?

Офлайн

#5 Янв. 27, 2015 21:36:01

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

AttributeError: 'module' object has no attribute 'MIME_TYPE'

ajk
Чё делать?

Сделать обновление системы.

Офлайн

#6 Янв. 27, 2015 23:02:09

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

AttributeError: 'module' object has no attribute 'MIME_TYPE'

Alen
Сделать обновление системы.
не думаю что поможет, так как в python-magic нету MIME_TYPE
а вот это может и работать
# -*- coding: utf-8 -*-
'''
'''
import sys, os, zipfile, hashlib, pprint
import xml.parsers.expat, magic
mime = magic.Magic(mime=True)
tags = dict()
files = 0
reload(sys)
sys.setdefaultencoding('utf-8')
def start_element(name, attrs):
    tags[name] = tags[name] + 1 if name in tags else 1
def parse_dir(fn):
    dirlist = os.listdir(fn)
    dirlist.sort()
    for i in dirlist:
        parse_file(os.path.join(fn, i))
def parse_file(fn):
    m = mime.from_file(fn)
    if (m == 'application/zip'):
        parse_zip(fn)
    elif (m == 'application/xml'):
        parse_fb2(fn)
    else:
        print >> sys.stderr, 'Unknown mime type (%s) of file %s' % (m, fn)
def parse_zip(fn):
    print >> sys.stderr, 'Zip:', os.path.basename(fn)
    z = zipfile.ZipFile(fn, 'r')
    filelist = z.namelist()
    filelist.sort()
    for n in filelist:
        try:
            parse_fb2(z.open(n))
            print >> sys.stderr, n
        except:
            print >> sys.stderr, 'X:', n
def parse_fb2(fn):
    global files
    if isinstance(fn, str):
        fn = open(fn)
    parser = xml.parsers.expat.ParserCreate()
    parser.StartElementHandler = start_element
    parser.Parse(fn.read(), True)
    files += 1
def print_result():
    out = open('result.txt', 'w')
    for k, v in tags.iteritems():
        out.write(u'%s\t%d\n' % (k, v))
    print 'Files:', files
if (__name__ == '__main__'):
    if len(sys.argv) != 2:
        print >> sys.stderr, 'Usage: %s <xmlfile|zipfile|folder>' % sys.argv[0]
        sys.exit(1)
    src = sys.argv[1]
    if (os.path.isdir(src)):
        parse_dir(src)
    else:
        parse_file(src)
    print_result()



————————————————
-*- Simple is better than complex -*-

Офлайн

#7 Янв. 28, 2015 03:15:50

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

AttributeError: 'module' object has no attribute 'MIME_TYPE'

terabayt
не думаю что поможет, так как в python-magic нету MIME_TYPE

Тогда может в этом всё и дело.

Офлайн

#8 Янв. 28, 2015 07:00:25

ajk
Зарегистрирован: 2015-01-24
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

AttributeError: 'module' object has no attribute 'MIME_TYPE'

terabayt
не думаю что поможет, так как в python-magic нету MIME_TYPEа вот это может и работать
Другая ошибка:
./thisfile2b.py: строка 3:
: команда не найдена
import: unable to grab mouse `': Ресурс временно недоступен @ xwindow.c/XSelectWindow/8993.
./thisfile2b.py: строка 6: ошибка синтаксиса около неожиданной лексемы `('
./thisfile2b.py: строка 6: `mime = magic.Magic(mime=True)'

А можете объяснить смысл строк?
mime = magic.Magic(mime=True)
tags = dict()
files = 0
reload(sys)
def start_element(name, attrs):
tags = tags + 1 if name in tags else 1
и как оригинал
mime = magic.open(magic.MIME_TYPE)

Текст далее в целом понятен, хотя нужно что-то почитать. Всё таки прикольный язык

Офлайн

#9 Янв. 28, 2015 07:01:06

ajk
Зарегистрирован: 2015-01-24
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

AttributeError: 'module' object has no attribute 'MIME_TYPE'

Alen
Тогда может в этом всё и дело.
Это - да… Тут нужно будет подумать…

Отредактировано ajk (Янв. 28, 2015 07:01:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version