Форум сайта python.su
Нашел я некий Самый быстрый SAX-парсер для python. И это самое мне подходящее для начала.
С питоном пока дела не имел, первый опыт.
Можете помочь? Работаю по Убунтой. Питон установлен, но сразу не было модуля magic
Модуль установил, но появилась другая ошибка.
На строчку:
mime = magic.open(magic.MIME_TYPE)
Программка выдает:
AttributeError: ‘module’ object has no attribute ‘MIME_TYPE’
Помогите начать. А там увидим…
Спасибо!
Александр.
Офлайн
у меня все норм
а вы как устанавливали?
sudo apt-get install python-magic
>>> import magic >>> print(dir(magic))
Офлайн
Устанавливал через Синаптик.
Команда 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']
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'
Офлайн
Попробуйте обновить.
sudo apt-get install python-pip sudo pip install python-magic -U
Офлайн
В Fedora обычная установка из репозитория:
>>> import magic >>> magic.MIME_TYPE 16 >>>
Отредактировано py.user.next (Янв. 26, 2015 11:08:29)
Офлайн
При апдейте установились два пакета: 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
Офлайн
py.user.nextА можно найти файл magic с текстом "magic.MIME_TYPE"?
В Fedora обычная установка из репозитория:
Офлайн
В файле /etc/magic.mime
# Magic local data for file(1) command.И всё.
# Insert here your local magic data. Format is described in magic(5).
Офлайн
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)
Офлайн
У меня Убунта и установка модулей идет через apt-get install python-magic
но rpm есть и он говорит
:~$ rpm -ql python-magicправда, при штатной установке ничего нового не устанавливается
пакет python-magic не установлен
Уже установлена самая новая версия python-magic.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 5 пакетов не обновлено.
AttributeError: ‘module’ object has no attribute ‘MIME_TYPE’
Отредактировано ajk (Янв. 27, 2015 06:59:21)
Офлайн