Pyinstaller и скрытый импорт: как заставить импортировать пакет, который не импортируется автоматически pyinstallerPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pyinstaller и скрытый импорт: как заставить импортировать пакет, который не импортируется автоматически pyinstaller

Сообщение Anonymous »

Я пытался сгенерировать файл .exe с помощью pyinstaller.
Он работает нормально, за исключением того факта, что один пакет не был обнаружен автоматически и импортирован pyinstaller.
Такой пакет, который в этом примере мы назовем «packageOfInterest», не был импортирован, поскольку разработчики не предоставил крючок.
Прочитав документацию, я понял, что эту проблему можно легко решить, добавив в .spec следующую строку:: р>

Код: Выделить всё

hiddenimports=["packageOfInterest"]
К сожалению, это не работает, packageOfInterest» не был импортирован даже с использованием такой строки кода.
Итак, мой вопрос: чего мне еще не хватает в файле .spec?
Под моим файлом .spec , что я успешно использую во многих приложениях, где пакеты могут быть автоматически обнаружены pyinstaller, поэтому это не так.

Код: Выделить всё

import sys
import os

from kivy_deps import sdl2, glew
from kivymd import hooks_path as kivymd_hooks_path
path = os.path.abspath(".")

a = Analysis(
["MyScript.py"],

# "packageOfInterest" in the "hiddenimports" is the package name
#  that pyinstaller could not import automatically
hiddenimports=["kivymd.stiffscroll", "packageOfInterest"],

pathex=[path],
hookspath=[kivymd_hooks_path],
datas = [("media\\", "media\\")],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=None,
noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=None)

exe = EXE(
pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
debug=False,
strip=False,
upx=True,
name="MyScript",
console=True,
icon='myicon.ico'
)
Расположение «packageOfInterest» находится по пути:

Код: Выделить всё

C:\Users\ASUS\AppData\Local\Programs\Python\Python39\Lib\site-packages
Возможно, этот путь следует где-то указать (например, следует добавить в «pathex» после значения «path»).
В общем, было бы здорово определить четкий метод, который проверяет все пакеты, импортированные через «MyScript.py», которые не могут быть автоматически импортированы pyinstaller, и это заставит их import.
В то же время было бы полезно понять, как настроить .spec, чтобы решить проблему.
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/686 ... doesnt-get
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»