libtorrent を Python に追加しようとしています。私の問題は、libtorrentをPythonで動作させるために、奇妙ではありますが多くの回避策(これについては後で詳しく説明します)を試しましたが、一生モジュールをインポートできないことです。
私が試したことを説明します。私は途中で私を助けてくれた「解決策」に出くわしましたが、ずっとではありませんでした. Stack Overflowで提供されている作成者自身の指示に従おうとさえしました。
数歩戻って、私が試みたことを観察してみましょう。ブーストから始めます。ご存じない場合は、libtorrent が機能するにはブーストが必要です。ブーストに関しては私の知識が豊富ではないので、ここでは説明を省略します。したがって、私が従ったすべての指示と同様に、ブーストが必要であると述べました. すぐにブーストをインストールし、そのパスを環境テーブルに追加しました。続いて、boost で提供されているバット ファイルを実行したところ、 B2.exeとBJAMという 2 つのファイル (おそらくそれ以上)が作成されました。B2は、今後の手順で使用する必要があったものです。
ダウンロードしたブースト フォルダー (ver 1.66) > tools > build > example に移動し、user-config.jam ファイルを編集して次の項目を追加しました。
msvc を使用: 14.0;
gcc を使用: : : -std=c++11 ;
Python を使用: 3.6: C:\Users\XXXX\AppData\Local\Programs\Python\Python36-32: C:\Users\XXXX\AppData\Local\Programs\Python\Python36-32\include: C:\Users\ XXXX\AppData\Local\Programs\Python\Python36-32\libs ;
次に、VS2017 用の昇格した x64 ネイティブ ツール コマンド プロンプトを開き、次のコマンドを実行しました。
b2.exe --hash openssl-version=pre1.1 link=shared libtorrent-link=shared stage_module stage_dependencies
また、Arvid (作成者だと思います) によって提供され、libtorrent>bindings>pythonフォルダーにあります。これにより、5 分間のダウンロード期間が開始されました。それは私に次の情報を与えました:
Performing configuration checks
- 32-bit : yes (cached)
- arm : no (cached)
- mips1 : no (cached)
- power : no (cached)
- sparc : no (cached)
- x86 : yes (cached)
- symlinks supported : yes (cached)
...patience...
...patience...
...patience...
...found 7252 targets...
...updating 27 targets...
と言って終わる
...updated 27 targets...
手順は基本的にここで終了するため、適切に構成されたと考えてください。そうではありませんでした。私はすぐに bindings>python フォルダーに移動しましたが、確かに libtorrent.pyd と libtorrent.lib ファイルが存在します。有望に見えた。コマンド プロンプトを起動し、Pip (pip list) を確認したところ、リストに libtorrent が表示されました。pythonに入り、libtorrentをインポートしてみました。
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import libtorrent
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.
pyd ファイルが存在するので、手動で python DLL フォルダーにドラッグしようとしましたが、まだインポートできませんでした。マニュアルを作るのにここまで行った
sys.path.append('D:\Downloads\libtorrent-rasterbar-1.1.7\libtorrent-
rasterbar-1.1.7\bindings\python')
リンクされていない可能性があるため、一部の人が提案しました。
私は途方に暮れています。
インポートできませんが、pip リストだけでなく、libtorrent > bindings > python フォルダー(pyd および lib ファイル) にも明らかに存在します。
setup.py ファイルも実行してみました。これは同じことをしますが、それ以上は得られません。
私が行った観察: libtorrent > bindings > python > binフォルダー内のフォルダー フォルダーには、src フォルダー、libtorrent.exp、libtorrent.lib、libtorrent.pdb、libtorrent.pyd、libtorrent.pyd を含む "d796976f6d11336977dac24301151009" という奇妙な名前があります。 .manifest と libtorrent.pyd.rsp
これは、インストールまたはダウンロードが完全に完了していないように思えます。これはそうではないかもしれませんが、それは根拠のない推測にすぎません。さらに、libtorrent > bindings > pythonフォルダー & にある libtorrent.lib ファイルと libtorrent.pyd ファイルのサイズは、それぞれ 2 KB と 3000 KB です。
破損している可能性はありますか?正しくリンクしていませんか?
私はPython 3.6.5 32ビットを使用しています(64ビットも存在しますが、何らかの理由でlibtorrentではまったく機能しません)。Windows 10 がインストールされた Windows ベースの 64 ビット システム。ブースト 1.66.0。libtorrent-rasterbar-1.1.7 をダウンロード/インストール/インポートしようとしています