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 он тоже не считывает)

перерыл инет и в том числе этот форум и нигде не смог найти решение.

какими способами я компелировал файл:

  1. pyinstaller -F priloshenie.py
  2. pyinstaller --onefile --collect-all paramiko --collect-all scp priloshenie.py
  3. pyinstaller --onefile --hidden-import=paramiko --hidden-import=scp priloshenie.py
  4. pyinstaller --onefile --debug=all priloshenie.py(pyinstaller --onefile --debug=imports priloshenie.py)
  5. да, я обновлял pyinstaller
  6. да, библиотеки свежеустановленые они не требуют обновлений
  7. да, я заходил в spec файл и вставлял свои библиотеки в hiddenimports=[], а потом запускал через этот файл програму

даже индусы с ютуба не дали ответа?

Я в дипресии, помогите пожайлуста друзья.


Ответы (1 шт):

Автор решения: Fox Fox

У меня есть серьёзный опыт работы с pyinstaller. Почему у Вас не работает, меня не удивляет.

  1. Вот пример команды, которая используется мной в обычном батнике для сборки приложения (почувствуйте разницу, как говорится):

    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

Если непонятны опции, я могу пояснить отдельно.

  1. Если Ваша программа работает без проблем в режиме .py, а не из под весьма придурковатых сред типа Pycharm, почти наверняка она будет собрана без проблем с помощью pyinstaller.
  2. Чем быстрее Вы избавитесь от привычки использовать from, тем быстрее избавитесь от проблем. Почему? Это просто. Если не подтянут модуль, значит на него не было корректной ссылки в коде! Когда Вы запускаете в среде, среда "поможет" - пороется, найдёт, подключит. В автономном режиме ВЫ должны обеспечить все ссылки.
  3. Я не пропагандирую такое, но и полный файл кода я тоже собираю сам. То есть, все .py в один файл я объединяю самостоятельно! Это очень просто, но снимает сразу кучу возможных дурацких странностей - ведь я сам контролирую в общем файле все вызовы, все определения, все импорты.

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

→ Ссылка