Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 24, 2015 20:58:16

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

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

Нашел я некий Самый быстрый SAX-парсер для python. И это самое мне подходящее для начала.
С питоном пока дела не имел, первый опыт.
Можете помочь? Работаю по Убунтой. Питон установлен, но сразу не было модуля magic
Модуль установил, но появилась другая ошибка.
На строчку:
mime = magic.open(magic.MIME_TYPE)
Программка выдает:
AttributeError: ‘module’ object has no attribute ‘MIME_TYPE’

Помогите начать. А там увидим…

Спасибо!

Александр.

Офлайн

#2 Янв. 25, 2015 01:21:20

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

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

у меня все норм
а вы как устанавливали?

sudo apt-get install python-magic
и покажите что выдаст
>>> import magic
>>> print(dir(magic))



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

Офлайн

#3 Янв. 26, 2015 07:09:34

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

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

Устанавливал через Синаптик.
Команда sudo apt-get install python-magic ничего нового не дала.

Вот сообщение по тем дум строчкам:

['MAGIC_APPLE', 'MAGIC_CHECK', 'MAGIC_COMPRESS', 'MAGIC_CONTINUE', 'MAGIC_DEBUG', 'MAGIC_DEVICES', 'MAGIC_ERROR', 'MAGIC_MIME', 'MAGIC_MIME_ENCODING', 'MAGIC_MIME_TYPE', 'MAGIC_NONE', 'MAGIC_NO_CHECK_APPTYPE', 'MAGIC_NO_CHECK_CDF', 'MAGIC_NO_CHECK_COMPRESS', 'MAGIC_NO_CHECK_ELF', 'MAGIC_NO_CHECK_ENCODING', 'MAGIC_NO_CHECK_SOFT', 'MAGIC_NO_CHECK_TAR', 'MAGIC_NO_CHECK_TEXT', 'MAGIC_NO_CHECK_TOKENS', 'MAGIC_PRESERVE_ATIME', 'MAGIC_RAW', 'MAGIC_SYMLINK', '__doc__', '__file__', '__name__', '__package__', 'error', 'open']

И, вот, сообщение по строке: mime = magic.open(magic.MIME_TYPE)
Traceback (most recent call last):
  File "./thisfile2.py", line 14, in <module>
    mime = magic.open(magic.MIME_TYPE)
AttributeError: 'module' object has no attribute 'MIME_TYPE'

Офлайн

#4 Янв. 26, 2015 07:14:51

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

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

Попробуйте обновить.

sudo apt-get install python-pip
sudo pip install python-magic -U

Офлайн

#5 Янв. 26, 2015 11:07:30

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

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

В Fedora обычная установка из репозитория:

>>> import magic
>>> magic.MIME_TYPE
16
>>>



Отредактировано py.user.next (Янв. 26, 2015 11:08:29)

Офлайн

#6 Янв. 26, 2015 20:59:19

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

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

При апдейте установились два пакета: python-pip python-setuptools
Потом ещё:

Downloading/unpacking python-magic
Downloading python-magic-0.4.6.tar.gz
Running setup.py egg_info for package python-magic
Installing collected packages: python-magic
Running setup.py install for python-magic
Successfully installed python-magic
При этом:
AttributeError: ‘module’ object has no attribute ‘MIME_TYPE’

Офлайн

#7 Янв. 26, 2015 21:02:04

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

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

py.user.next
В Fedora обычная установка из репозитория:
А можно найти файл magic с текстом "magic.MIME_TYPE"?
Можно я сравню со своим?

Офлайн

#8 Янв. 26, 2015 21:47:14

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

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

В файле /etc/magic.mime

# Magic local data for file(1) command.
# Insert here your local magic data. Format is described in magic(5).
И всё.

А файл /usr/share/file/magic.mime вполне похож на нормальный.

Офлайн

#9 Янв. 26, 2015 23:53:52

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

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

ajk
А можно найти файл magic с текстом “magic.MIME_TYPE”?

[guest@localhost ~]$ rpm -ql python-magic
/usr/lib/python2.7/site-packages/Magic_file_extensions-0.2-py2.7.egg-info
/usr/lib/python2.7/site-packages/magic.py
/usr/lib/python2.7/site-packages/magic.pyc
/usr/lib/python2.7/site-packages/magic.pyo
/usr/share/doc/python-magic
/usr/share/doc/python-magic/README
/usr/share/doc/python-magic/example.py
/usr/share/licenses/python-magic
/usr/share/licenses/python-magic/COPYING
[guest@localhost ~]$

[guest@localhost ~]$ head -100 /usr/lib/python2.7/site-packages/magic.py
#!/usr/bin/env python
'''
Python bindings for libmagic
'''

import ctypes

from ctypes import *
from ctypes.util import find_library


def _init():
"""
Loads the shared library through ctypes and returns a library
L{ctypes.CDLL} instance
"""
return ctypes.cdll.LoadLibrary(find_library('magic'))

_libraries = {}
_libraries['magic'] = _init()

# Flag constants for open and setflags
MAGIC_NONE = NONE = 0
MAGIC_DEBUG = DEBUG = 1
MAGIC_SYMLINK = SYMLINK = 2
MAGIC_COMPRESS = COMPRESS = 4
MAGIC_DEVICES = DEVICES = 8
MAGIC_MIME_TYPE = MIME_TYPE = 16
MAGIC_CONTINUE = CONTINUE = 32
MAGIC_CHECK = CHECK = 64
MAGIC_PRESERVE_ATIME = PRESERVE_ATIME = 128
MAGIC_RAW = RAW = 256
MAGIC_ERROR = ERROR = 512
MAGIC_MIME_ENCODING = MIME_ENCODING = 1024
MAGIC_MIME = MIME = 1040
MAGIC_APPLE = APPLE = 2048

MAGIC_NO_CHECK_COMPRESS = NO_CHECK_COMPRESS = 4096
MAGIC_NO_CHECK_TAR = NO_CHECK_TAR = 8192
MAGIC_NO_CHECK_SOFT = NO_CHECK_SOFT = 16384
MAGIC_NO_CHECK_APPTYPE = NO_CHECK_APPTYPE = 32768
MAGIC_NO_CHECK_ELF = NO_CHECK_ELF = 65536
MAGIC_NO_CHECK_TEXT = NO_CHECK_TEXT = 131072
MAGIC_NO_CHECK_CDF = NO_CHECK_CDF = 262144
MAGIC_NO_CHECK_TOKENS = NO_CHECK_TOKENS = 1048576
MAGIC_NO_CHECK_ENCODING = NO_CHECK_ENCODING = 2097152

MAGIC_NO_CHECK_BUILTIN = NO_CHECK_BUILTIN = 4173824


class magic_set(Structure):
pass
magic_set._fields_ = []
magic_t = POINTER(magic_set)

_open = _libraries['magic'].magic_open
_open.restype = magic_t
_open.argtypes = [c_int]

_close = _libraries['magic'].magic_close
_close.restype = None
_close.argtypes = [magic_t]

_file = _libraries['magic'].magic_file
_file.restype = c_char_p
_file.argtypes = [magic_t, c_char_p]

_descriptor = _libraries['magic'].magic_descriptor
_descriptor.restype = c_char_p
_descriptor.argtypes = [magic_t, c_int]

_buffer = _libraries['magic'].magic_buffer
_buffer.restype = c_char_p
_buffer.argtypes = [magic_t, c_void_p, c_size_t]

_error = _libraries['magic'].magic_error
_error.restype = c_char_p
_error.argtypes = [magic_t]

_setflags = _libraries['magic'].magic_setflags
_setflags.restype = c_int
_setflags.argtypes = [magic_t, c_int]

_load = _libraries['magic'].magic_load
_load.restype = c_int
_load.argtypes = [magic_t, c_char_p]

_compile = _libraries['magic'].magic_compile
_compile.restype = c_int
_compile.argtypes = [magic_t, c_char_p]

_check = _libraries['magic'].magic_check
_check.restype = c_int
_check.argtypes = [magic_t, c_char_p]

_list = _libraries['magic'].magic_list
_list.restype = c_int
_list.argtypes = [magic_t, c_char_p]

_errno = _libraries['magic'].magic_errno
[guest@localhost ~]$

Вот строка:
MAGIC_MIME_TYPE = MIME_TYPE = 16



Отредактировано py.user.next (Янв. 26, 2015 23:56:39)

Офлайн

#10 Янв. 27, 2015 06:58:31

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

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

У меня Убунта и установка модулей идет через apt-get install python-magic
но rpm есть и он говорит

:~$ rpm -ql python-magic
пакет python-magic не установлен
правда, при штатной установке ничего нового не устанавливается
Уже установлена самая новая версия python-magic.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 5 пакетов не обновлено.

В найденном файле /usr/local/lib/python2.6/dist-packages/magic.py константа MIME_TYPE отсутствует. Кстати, есть ещё каталог /usr/local/lib/python3.1/dist-packages, но он пустой.
При тупом же добавлении оной константы, скрипт на том же месте требует еще некий модуль
AttributeError: ‘module’ object has no attribute ‘MIME_TYPE’

Наверное, пойду искать на форуме Убунты.

Спасибо за помощь! Если есть ещё идеи, буду благодарен.

Отредактировано ajk (Янв. 27, 2015 06:59:21)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version