PyInstaller не видит библиотеку (paramiko, scp)
шапка кода который импортирую в exe:
import paramiko
from paramiko import SSHClient
from scp import SCPClient
переделывал я значит файл python в exe с помощью pyinstaller. Но когда запускал его просто открывалась консоль и сразу закрывалась. Попробывал запустить через консоль и выбило следующую ошибку:
Traceback (most recent call last): File "priloshenie.py", line 2, in ModuleNotFoundError: No module named 'paramiko' [14784] Failed to execute script 'priloshenie' due to unhandled exception!
(ну и очеведно библиотеку scp он тоже не считывает)
перерыл инет и в том числе этот форум и нигде не смог найти решение.
какими способами я компелировал файл:
- pyinstaller -F priloshenie.py
- pyinstaller --onefile --collect-all paramiko --collect-all scp priloshenie.py
- pyinstaller --onefile --hidden-import=paramiko --hidden-import=scp priloshenie.py
- pyinstaller --onefile --debug=all priloshenie.py(pyinstaller --onefile --debug=imports priloshenie.py)
- да, я обновлял pyinstaller
- да, библиотеки свежеустановленые они не требуют обновлений
- да, я заходил в spec файл и вставлял свои библиотеки в hiddenimports=[], а потом запускал через этот файл програму
даже индусы с ютуба не дали ответа?
Я в дипресии, помогите пожайлуста друзья.
Ответы (1 шт):
У меня есть серьёзный опыт работы с pyinstaller. Почему у Вас не работает, меня не удивляет.
Вот пример команды, которая используется мной в обычном батнике для сборки приложения (почувствуйте разницу, как говорится):
pyinstaller -y --uac-admin --clean ^ --onedir --runtime-tmpdir="." --distpath="." --contents-directory="Runtimes" ^ --add-data=".\DB\rhymes.db;DB" ^ --add-data=".\HELP\rhymes.pdf;HELP" ^ --hide-console=hide-early --icon=..\IMAGES\app.png .\rhymes.py
Если непонятны опции, я могу пояснить отдельно.
- Если Ваша программа работает без проблем в режиме .py, а не из под весьма придурковатых сред типа Pycharm, почти наверняка она будет собрана без проблем с помощью pyinstaller.
- Чем быстрее Вы избавитесь от привычки использовать from, тем быстрее избавитесь от проблем. Почему? Это просто. Если не подтянут модуль, значит на него не было корректной ссылки в коде! Когда Вы запускаете в среде, среда "поможет" - пороется, найдёт, подключит. В автономном режиме ВЫ должны обеспечить все ссылки.
- Я не пропагандирую такое, но и полный файл кода я тоже собираю сам. То есть, все .py в один файл я объединяю самостоятельно! Это очень просто, но снимает сразу кучу возможных дурацких странностей - ведь я сам контролирую в общем файле все вызовы, все определения, все импорты.
У меня не было до сих пор ни единого случая отказа в работе автономного приложения, собранного с помощью pyinstaller, по причине отсутствия в сборке необходимого компонента.