Libtorrent загружен и файл модуля существует, pip говорит, что он существует, но я не могу импортировать его в Python - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь добавить libtorrent к моему Python.Моя проблема в том, что, хотя я попробовал много, хотя и странных, обходных путей ( об этом позже ), чтобы заставить libtorrent работать с моим Python, я не могу на всю жизнь импортировать модуль.

Я пойду через то, что я пробовал.Я наткнулся на «решения», которые помогли мне частично, но не до конца.Я даже пытался следовать инструкциям самого создателя, приведенным в Переполнение стека .

Давайте сделаем несколько шагов назад и посмотрим, что я пытался сделать.Мы начнем с повышения.Если вы не знали, libtorrent требует повышения, чтобы функционировать.Мои знания не велики, когда речь идет о повышении, поэтому я опущу объяснение этого.Итак, как и в случае с всеми инструкциями, которые я следовал, говорилось, что требуется повышениеЯ быстро установил boost и добавил его путь к таблице окружения.Впоследствии я запустил файл bat, предоставленный в boost, и он создал два файла ( возможно больше ) B2.exe и BJAM . B2 - это то, что мне нужно было использовать для следующих шагов.

Я продолжил, перейдя в загруженную папку Boost (версия 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 \Программы \ Python \ Python36-32 \ libs;

Затем я продолжил, открыв командную строку для собственного инструмента с повышенными правами x64 для VS2017 и выполнив следующую команду

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 (список пипсов) и увидел 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 существует, поэтому я попытался перетащить его в папку DLL Python, но все равно не смог его импортировать.Я даже зашел так далеко, чтобы сделать руководство

 sys.path.append('D:\Downloads\libtorrent-rasterbar-1.1.7\libtorrent- 
 rasterbar-1.1.7\bindings\python')

, которое некоторые люди предложили сделать, потому что оно может быть не связано.

Я в растерянности.

Iне может импортировать его, но он явно существует не только в списке пипсов, но и в папке libtorrent> bindings> python (файлы pyd и lib).

Я также попытался запустить файл setup.py.Что делает то же самое, но не дает мне дальнейшего.

Я сделал замечание: папка в папке libtorrent> bindings> python> bin имеет странное имя: "d796976f6d11336977dac24301151009 ", содержащий папку src, libtorrent.exp, libtorrent.lib, libtorrent.pdb, libtorrent.pyd, libtorrent.pyd.manifest и libtorrent.pyd.rsp

Мне кажется, что установка или загрузка былане полностью завершен.Однако это может быть не так, это всего лишь необразованное предположение.Кроме того, файл libtorrent.lib, находящийся в папке libtorrent> bindings> python & и файл libtorrent.pyd, имеет размер 2 КБ и 3000 КБ соответственно

Может ли он быть поврежден?Разве я не связал это правильно?

Я использую 32-битный Python 3.6.5 (64-битный также существует, но по некоторым причинам не будет работать вообще с libtorrent). 64-битная система на базе Windows с установленной Windows 10. Повышение 1.66.0. Попытка загрузить / установить / импортировать libtorrent-rasterbar-1.1.7

...