2

libtorrent を Python に追加しようとしています。私の問題は、libtorrentをPythonで動作させるために、奇妙ではありますが多くの回避策(これについては後で詳しく説明します)を試しましたが、一生モジュールをインポートできないことです。

私が試したことを説明します。私は途中で私を助けてくれた「解決策」に出くわしましたが、ずっとではありませんでした. Stack Overflowで提供されている作成者自身の指示に従おうとさえしました。

数歩戻って、私が試みたことを観察してみましょう。ブーストから始めます。ご存じない場合は、libtorrent が機能するにはブーストが必要です。ブーストに関しては私の知識が豊富ではないので、ここでは説明を省略します。したがって、私が従ったすべての指示と同様に、ブーストが必要であると述べました. すぐにブーストをインストールし、そのパスを環境テーブルに追加しました。続いて、boost で提供されているバット ファイルを実行したところ、 B2.exeBJAMという 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 をダウンロード/インストール/インポートしようとしています

4

0 に答える 0