Следуя моему предыдущему вопросу здесь , я хотел бы импортировать эту реализацию C / C ++ sha256
в мой скрипт Python (Python 3.7.0)
и запустить некоторые тесты производительности.
Из официальной документации кажется, что одним из способов сделать это является использование distutil
встроенного модуля python, чтобы упаковать его как новый модуль, а затем установить его, чтобы он стал импортируемым в любой скрипт.
Первым делом я скачал код sha256module.c
и сохранил его в моем текущем каталоге.В этом же каталоге я создал setup.py
со следующим содержимым, которое документация python рекомендует here .
setup.py:
from distutils.core import setup
from distutils.extension import Extension
setup(name='sha256_test1',
version='1.0',
description = 'This is a test sha256 function',
ext_modules=[Extension('sha256', sources = ['sha256module.c'])],
)
После созданияустановочный файл, из командной строки и в том же каталоге, в котором я запускаю установку python setup.py build
.Во-первых, я получил ошибку «Невозможно найти vcvarsall.bat» и, основываясь на ответе на этот вопрос, я установил версию сообщества Visual Studio 2017 на свою операционную систему Win10 x64.Ошибка ушла.Но я получил ошибки, указывающие на отсутствие некоторых других файлов, которые казались необходимыми для упаковки.Они перечислены как:
hashlib.h
coreconfig.h
pystrhex.h
python.h
structmember.h
tracemalloc.h
clinic/sha256module.c.h
Я добавил их в текущий каталог, и когда я снова запускаю python setup.py build
, я получаю еще одну ошибку с сообщением:нехватка __init__.py
, поэтому я создал пустой, но он не сработал.
Я не уверен, правильно ли я все делаю.Что вы думаете об этой процедуре ?!Я в правильном направлении ?!Если да, скажите, пожалуйста, как устранить ошибку, а если нет, укажите, почему и где я делаю ошибку.