#python #windows #paramiko #embedding
#python #Windows #paramiko #внедрение
Вопрос:
Я хочу внедрить python в приложение на C . Я могу импортировать стандартные модули из библиотек Python, т.е.:
PyRun_SimpleString("import sys")
но когда я пытаюсь импортировать paramiko, происходит сбой,
PyRun_SimpleString("import paramiko")
Обратная трассировка
Traceback (most recent call last):
File "<string>", line 4, in <module>
File "C:Userschaitanya.rautAppDataLocalProgramsPythonPython38-32libsite-packagesparamiko__init__.py", line 22, in <module>
from paramiko.transport import SecurityOptions, Transport
File "C:Userschaitanya.rautAppDataLocalProgramsPythonPython38-32libsite-packagesparamikotransport.py", line 89, in <module>
from paramiko.dsskey import DSSKey
File "C:Userschaitanya.rautAppDataLocalProgramsPythonPython38-32libsite-packagesparamikodsskey.py", line 25, in <module>
from cryptography.hazmat.primitives import hashes, serialization
File "C:Userschaitanya.rautAppDataLocalProgramsPythonPython38-32libsite-packagescryptographyhazmatprimitivesserialization__init__.py", line 15, in <module>
from cryptography.hazmat.primitives.serialization.base import (
File "C:Userschaitanya.rautAppDataLocalProgramsPythonPython38-32libsite-packagescryptographyhazmatprimitivesserializationbase.py", line 9, in <module>
from cryptography.hazmat.primitives.asymmetric.types import (
File "C:Userschaitanya.rautAppDataLocalProgramsPythonPython38-32libsite-packagescryptographyhazmatprimitivesasymmetrictypes.py", line 7, in <module>
from cryptography.hazmat.primitives.asymmetric import (
File "C:Userschaitanya.rautAppDataLocalProgramsPythonPython38-32libsite-packagescryptographyhazmatprimitivesasymmetricdsa.py", line 10, in <module>
from cryptography.hazmat.primitives.asymmetric import (
File "C:Userschaitanya.rautAppDataLocalProgramsPythonPython38-32libsite-packagescryptographyhazmatprimitivesasymmetricutils.py", line 6, in <module>
from cryptography.hazmat.bindings._rust import asn1
ImportError: DLL load failed while importing _rust: The specified module could not be found.
Однако я могу импортировать paramiko при запуске интерпретатора python через cmd. Также я сталкиваюсь с этой проблемой только в Windows, т.Е. Это отлично работает в Linux.
Некоторые детали моей системы —
- Версия Python = 3.8.0
- ОС = Windows 10
- Компилятор C = Visual studio 17
Комментарии:
1. См . Это примечание из документации по установке Paramiko . Похоже, вам нужна установка rust «Для криптографии 3.4 и выше требуется набор инструментов языка Rust для установки из исходного кода; еще раз см. Документацию Cryptography для получения подробной информации здесь, например, их раздел установки Rust и эта запись часто задаваемых вопросов «.
2. Да, я видел это, и я также пробовал после установки rust. Он по-прежнему выдавал ту же ошибку. однако, когда я попробовал с python 3.9, это сработало. Так что, возможно, это проблема с python 3.8