Как получить доступ к блокчейну Golos используя Python и Windows. Шаг 2, исправление багов.


Можно дать человеку рыбу и накормить на один день, а можно научить ловить рыбу и накормить на всю жизнь. =>часть 1

Аналогичная ситуация с "таблетками" и "костылями" при установке чего-либо. В нашем случае при дальнейшей инсталяции piston будут вылазить ошибки. И занятную историю их устранения мы Вам хотим рассказать.

Этап 4. Попытка установить piston.

Чтобы установить piston надо выполнить следующую команду:

pip3.exe install piston-lib

Из директории виртуального окружения. В нашем случае - C:\Piston\Scripts\

Пока все идет хорошо...

И все. После такого захотелось сразу спрятаться, так как чутье говорило - такое просто так не исправишь. Пришлось взять одну ночь перерыва, походить по улице, подышать свежим воздухом.

Оказалось, что для разных версий питона требуются разные версии Visual C++. Так для версий 2.7-3.2 - Visual C++ 2008, для 3.3-3.4 - Visual C++ 2010, для 3.5-3.6 - самая свежая 2017.


источник

Готовое решение Microsoft Visual C++ Compiler for Python 2.7. было и для версии 3.2 (ссылку не указываю). Но когда установил 3.2 версию питона немного удивился... pip там не было, он оказывается появились как раз с версии 3.4. Встали определенные проблемы: а как же тогда установить pip на более древнюю версию, а нужно ли это.

Предлагаемые решения на интернет-форумах для 3.4 версии мне не помогли. Эта ошибка продолжала появляться. А ставить 3.6 можно было только через удаленный доступ на рабочих компьютерах, но и там ничего не пошло и зависло. Да и тогда, даже если бы успешно установилось - я бы лишил себя комфортной работы в ХР.

Как же люблю в таких ситуациях русские народные сказки. Представляешь себя богатырем у камня. Направо пойдешь - коня потеряешь. Так и в сложившейся ситуации. Решения влет не помогли. Нужно тратить время на изучение проблемы для корректной настройки. А для этого нужно определиться где же копать. А где копать-то?

Пригодилось мне изначально поставленные цели-задачи. Доктор сказал в ХР, значит в ХР. Решил не отвлекаться на альтернативные способы и продолжить концентрацию своего внимания на 3.4 версии.

Этап 5. PyCrypto.

В нашем деле главное правильно задать вопрос. И действительно, а зачем при установке piston потребовался С++? Посмотрев логи выше, увидел установку еще одного пакета - RyCrypto. И при попытке его установки отдельно - как раз и появляется сообщение об этой ошибке. Отлично, надо почитать, а что это за Элис и где она живет!

https://www.dlitz.net/software/pycrypto/

И о чудо! При переводе в гуглтранслейт многое прояснилось.

В версиях, предшествующих v2.6.1, Crypto.Random был небезопасным при использовании fork () в некоторых случаях. Дополнительную информацию см. В рекомендациях CVE-2013-1445. Рекомендуется, чтобы пользователи обновлялись до PyCrypto v2.6.1 или новее.

Ага, подумал я. Для доступа к блокчейну требуется шифрование и этот модуль как раз это обеспечивает. В одной из их процедур - Crypto.Random обнаружена уязвимость и она была оперативно исправлена. Установить предыдущую версию не получится, так как безопасность превыше всего и авторы удалили такую возможность. И С++ , видимо, как раз и нужен, чтобы конвертировать их исправление бага в новый файл. (или как-то так).

Теперь можно запустить новый виток поиска и установить Visual C++ 2010.

Этап 6. Visual C++ 2010.

И сколько раз твердили миру не читать советы бывалых. Правильную последовательность действий в танцах с бубнах нашел на wiki )))
https://wiki.python.org/moin/WindowsCompilers

Нужно сделать следующее:
шаг 1. Удалить Microsoft Visual C++ 2010 (иначе будет ошибка при установке)
шаг 2. Установить Microsoft .NET Framework 4. ВНИМАНИЕ! в wiki дана ссылка на клиентсий профиль, а нужно установить полную версию Microsoft .NET Framework 4.

16 01

шаг 3. Установить Microsoft Windows SDK for Windows 7 and .NET Framework 4. При этом надо выбрать только три галочки в Windows Native Code Development:

  • Check Windows headers and libraries
  • Visual C++ Compilers
  • Tools

16_02

шаг 4. Установить Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1.

16_03

шаг 5. Переустановить Microsoft Visual C++ 2010 Redistributable для всего установленного ранее.

16_04

Первый танец с бубном закончился, пробуем теперь установить piston-lib.

C:\Piston\Scripts\pip3.exe install piston-lib

Обязательно скрещиваем пальцы на руках и призываем духов айти мира!

17

Successfully троян меня дери built pycrypto

Это были библиотеки для доступа к блокчейну, надо еще установить собственно саму оболочку piston

C:\Piston\Scripts\pip3.exe install piston-cli

Этап 7. Не все так просто. Visual C++ 2015.

Все, вроде установка прошла. Вот он долгожданный файл для запуска команд.

18

выполняем нашу первую команду:

piston info

Да елки-палки...

На самом деле даже обрадовался, когда увидел такое сообщение об ошибке. Так как почувствовал, что мой путь близится к завершению. DLL-ки - это внешние файлы необходимые для запуска, скорее всего либо их нет, либо не прописан путь для них. Лечится одним из двух способов, либо кидаем не найденный файл в корень самого piston.exe в нашем случае в папку C:\Piston\Scripts\

Либо кидаем к системным файлам Windows - C:\Windows\System32\

Пришлось запустить поиск этого файла у себя на компьютере. К моему удивлению он был найден в папке Анаконда. Так сложилось, что не все свои эксперименты по настройке описываю и на одном из этапов установил Anaconda3-4.4.0-Windows-x86. Поэтому стал по одному копировать эти файлы в корень нахождения piston. На самом деле, это оказалось плохой идеей. На третьем файле выскочило следующее:

Поиск решения привел меня к одному выводу: идея копировать файлы с анаконды - плохая затея, пришлось удалить эти некорректные для нашей конфигурации файлы.

Далее как-то наткнулся на совет доустановить Visual C++ 2015 Build Tools

И после установки этого обновления в папке System32 появилось все необходимое.

Но libeay32.dll - этот файл таки нужно раздобыть самостоятельно и скопировать в папку, где находится piston

Этап 8. No module named 'winrandom'.

piston info

Ха-ха хи-хи. Я уже сбился который по счету баг приходиться исправлять. Внешние файлы скопированы, а эта ошибка видимо связана снова с PyCrypto, с той самой процедурой random. Как ни странно, решение найдено в одном из незаметных комментариев на одном форуме GitHub.

Problem is solved by editing string in crypto\Random\OSRNG\nt.py:
import winrandom
to
from . import winrandom

Нужно найти файл nt.py и в начале поменять строку

import winrandom на from .import winrandom

Находим файл

И редактируем его

Сохраняем...

Этап 9. piston info... Enter

Поехали!

у-у-у-у-у-у-и-и-и-и-и-и-и-ё-ё-ё-ё-ё-ё-ё-ё-ё-ё-ё-ё-ххххххххххх-у-у-у-у-у-у-у

Жена проходила мимо в этот момент, остановилась, внимательно посмотрела на меня, изучила реакцию и спросила: "Ты заработал миллион?"

В следующий раз мы расскажем как можно пользоваться piston-cli
и разберем несколько интересных команд...


Comments 13


Ваше упорство поражает. Я бы так не смог ))

07.09.2017 12:24
0

А почему именно на XP ставили?

07.09.2017 12:25
0

в первой части упомянул ответ

Среда разработки должна спокойно функционировать на Windows XP. С этим пунктом сложнее, в наших комп классах стоит семерка 32 битная, а на моих домашних компьютерах - ХР.

а так, разве ХР плохая операционка?

07.09.2017 12:35
0

Вполне неплохая, просто у всех сейчас Win7-10 - XPюша немного устарела вроде как...

07.09.2017 12:38
0

есть пара древних ноутов с ХР. если писать ботов для обслуживания журнала, надо их оставлять все время в сети, пока такие мысли.

07.09.2017 12:51
0

А тогда всё ясно ))

07.09.2017 13:02
0

Программирование на WINDOWS - огонь!!!

08.09.2017 04:39
0

в танцах с бубнах

это - спецом авторское?)

09.09.2017 00:46
0

вот это опечатался! все смешалось в голове, люди кони, бубны в покере и бубен...
но надо исправить в след раз на бубунах... бу-бу-бу-бу-бу-нааааах. будет авторское заклинание.

09.09.2017 06:20
0

Да нормально, чо!
Обычно всякие такие заклинания и читаются при танцах с бубном.

09.09.2017 06:25
0