問題タブ [python-magic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python-magic に OSError: [WinError 193] エラーが 32 ビット バージョンの IDLE で実行されている
モジュールpython-magicを数時間インストールしようとしましたが、いくつかの問題が発生しています。64 ビット Windows 7 で 32 ビット バージョンの Python 3.5.2 を使用しています。
まず、コマンド「pip install python-magic
」を使用しました。Files for Windows プロジェクトから magic1.dll、regex2.dll、zlib1.dll、そして magic をダウンロードし、これら 4 つのファイルを
前述のディレクトリを Windows 環境変数の PATH の先頭に追加しました。次に、IDLE のシェルを開いて " import magic
" と入力すると、応答が返されOSError: [WinError 126] The specified module could not be found
ました。
「マジック」ファイルには拡張子 .dll が必要であると読んだので、名前を変更しました。"C:\Program Files (x86)\Python35-32\Lib\site-packages\magic.dll is either not designed to run on Windows or contains an error"
これにより、Windowsおよび Pythonによるポップアップ警告が表示されました"OSError: [WinError 193] %1 is not a valid Win32 application
。".後者のエラーは、64 ビット環境で実行しているときに一般的に発生することを読みましたが、32 ビット IDLE で実行するようにしました。インストールされている Python の 32 ビット バージョン。
以前の StackOverflow の投稿のアドバイスに従って、cygmagic-1.dll、cygwin1.dll、および cygz.dll を C:\Windows\System32 にコピーして、magic.dll と同じフォルダーにコピーし、cygmagic-1 の名前を変更してみました。 .dll を magic1.dll に変更しましたが、効果はありませんでした。Cygwin Python と Windows Python を混在させるべきではないと言っている場所は他にもありますが、これらのファイルを使用せずに試してみましたが、そのときもうまくいきませんでした。
私はmagic.dllの名前をmagic.exeに変更しようとしましたが、それは「魔法のインポート」と魔法を許可しました。Magic(magic_file=r'C:\Program Files (x86)\Python35-32\Lib\site-packages\python_magic-0.4.12-py3.5.egg-info\magic.exe') with the response "<magic.Magic object at 0x02EA0A70>". When I tried testing with magic.from_file(r'C:\Program Files (x86)\Python35-32\Lib\site-packages\README.txt'), though, I got the error magic.MagicException: b'could not find any magic files!
名前を magic.exe に変更するのは間違っているに違いないと考えましたが、試してみる価値はありました。
私が python-magic をあきらめた後、誰かが古いプロジェクトを勧めました。私はそれをダウンロードし、pymagic フォルダを自分の site-packages ディレクトリに置きました。pymagic.pymagic をインポートしようとすると、モジュール StringIO が存在しないことがわかり、推奨者は StringIO が Python2 にあるためだと言いました。StringIO のすべての言及を io に変更し、コマンドを試しましたpymagic.pymagic.identify_file(r'E:\Pictures\picture.jpg')
TypeError: startswith first arg must be bytes or a tuple of bytes, not str.
これにより、Pythonのos、ioなどのモジュールに十分に関与していないというエラーが生成され、これを機能させるために変更を加える方法がわかりました。python-magic または pymagic を機能させる方法、またはヘッダーに基づいてファイルを識別するための他のモジュールについて、誰でも推奨できますか? この質問が多く寄せられていることは知っていますが、以前の回答はうまくいきませんでした。
python - PIP は python-magic がインストールされていると言いますが、実体はそうではないと言います
ここの Substanced インストール手順に従っていますhttp://docs.pylonsproject.org/projects/substanced/en/latest/install.html
ステップ:3 $ bin/python -c "from substanced.file import magic; assert magic is not None, 'python-magic not installed'"
=>python-magic not installed
だから私は実行しますpip install python-magic
=>Requirement already satisfied: python-magic in c:\users\edmunds\appdata\local\programs\python\python36-32\lib\site-packages
ここで混合メッセージが表示される理由はありますか?