2015-01-30 5 views
2

필자는 Windows 7 64bit에 pip를 사용하여 python-magic (0.4.6)을 설치했습니다. 그런 다음 cygwin 1.7.33-2를 설치하여 필요한 dll을 제공하고 magic1.dll이라는 cygmagic-1.dll 사본을 만들었습니다. (python-magic WindowsError : 액세스 위반 작성 0x00000000

Python 2.7.6 32 비트 쉘을 실행할 때 "import magic "잘 작동합니다. 그러나

하는

magic.from_file('c:\user\username\sample.txt') 

나에게

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "c:\Python27\lib\site-packages\magic.py", line 119, in from_file  
    m = _get_magic_type(mime) 
    File "c:\Python27\lib\site-packages\magic.py", line 107, in _get_magic_type 
    i = instances.__dict__[mime] = Magic(mime=mime) 
    File "c:\Python27\lib\site-packages\magic.py", line 55, in __init__ 
    self.cookie = magic_open(flags) 

WindowsError: exception: access violation writing 0x00000000 

은이 오류가 발생하고 그것을 해결하는 방법을 무엇을 어떤 아이디어를 준다? 도와 줘서 고마워!

답변

2

GnuWin32 file package에는 32 비트 magic1.dll과 regex2.dll 및 zlib1.dll의 종속성이 있습니다. 테스트에서이 버전이 python-magic과 함께 작동한다는 것을 압니다. 다음은 32 비트 Python 3.3에서이를 테스트하기 위해 수행 한 단계의 개요입니다.

는 GnuWin32의 설치 디렉토리에 파일의 압축을 풉니 다 : 파이썬 매직 설치

C:\Temp>set PATH=%PATH%;%GNU%\bin 
C:\Temp>set MAGIC=%GNU%\share\misc\magic 

:

C:\Temp>py -3.3-32 -m pip install python-magic 
Collecting python-magic 
    Downloading python-magic-0.4.6.tar.gz 
Installing collected packages: python-magic 
    Running setup.py install for python-magic 
Successfully installed python-magic-0.4.6 

C:\Temp>set "GNU=C:\Program Files (x86)\GNU" 
C:\Temp>7z x -y -o"%GNU%" file-5.03-bin.zip > nul 
C:\Temp>7z x -y -o"%GNU%" file-5.03-dep.zip > nul 

는 DLL 및 마법 파일을 찾을 수있는 환경을 설정 작동하는지 확인하십시오 :

C:\Temp>py -3.3-32        
Python 3.3.5 (v3.3.5:62cf4e77f785, Mar 9 2014, 10:37:12) 
[MSC v.1600 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys, magic 
>>> magic.from_file(sys.executable) 
b'PE32 executable for MS Windows (console) Intel 80386 32-bit'