Kivy Garden в PyInstaller - блокира при опит за проследяване на импорт

Имам базиран на Kivy Python проект, който се опитвам да създам. Той използва компонента NavigationDrawer от Kivy Garden чрез импортиране:

от kivy.garden.navigationdrawer импортирайте NavigationDrawer

Имам спецификационен файл на PyInstaller за него, който изгражда версия за разпространение. Тази версия работи добре на моята машина, но за съжаление не и на други машини. Изпълнявайки интерпретатора във версията 'dist' с превключвателя -v, изглежда, че когато стартирам разпространителя на моята машина, компонентът на navigationdrawer всъщност не идва от папката ми за компилация. Всички други импортирания показват нещо като:

import kivy.graphics.gl_instructions # динамично зареден от C:\Users\me\myapp\dist\RACECA~1\kivy.graphics.gl_instructions.pyd

Но импортирането на чекмеджето за навигация казва:

импортиране на kivy.garden.navigationdrawer

""" директория C:\Users\me\.kivy\garden\garden.navigationdrawer C:\Users\me\.kivy\garden\garden.navigationdrawer\__init__.pyc съвпада с C:\Users\me\.kivy\garden \garden.navigationdrawer\__init__.py import kivy.garden.navigationdrawer # предварително компилиран от C:\Users\me\.kivy\garden\garden.navigationdrawer\__init__.pyc"""

Но не! Не искам да ги импортирате от c:\users. Искам те да бъдат добре копирани в моята папка dist като всички други импортирания. Опитах се да добавя c:\users\me към пътя на PyInstaller, системния PATH и PYTHONPATH без никаква радост. Някой има ли идеи?


person Chris Rae    schedule 04.06.2014    source източник
comment
Комедийният шрифт не трябваше да се появява тук... Просто не можах да накарам формататора на блокови цитати на SO да спре да го прави. :)   -  person Chris Rae    schedule 05.06.2014
comment
Бях конфигурирал спецификационен файл, моят kivy py файл работи чудесно, но когато се генерира изпълним файл, той не изисква допълнителен пакет или дори .kv файл също   -  person Tejas Tank    schedule 20.06.2017
comment
Това отговаря ли на въпроса ви? Да накараме Pyinstaller да разпознае пътя до Kivy Garden Matplotlib модули   -  person badams    schedule 09.07.2020


Отговори (4)


Можете просто да копирате кода на navigationdrawer от C:\Users\me\.kivy\garden\garden.navigationdrawer в директорията на вашето приложение, да извикате папката 'navigationdrawer' и да замените импортирането с from navigationdrawer import NavigationDrawer.

Това не е съвсем „правилният“ начин да го направите (вероятно има някакъв начин да накарате pyinstaller да го копира), но трябва да работи добре.

person inclement    schedule 04.06.2014

Опитайте да инсталирате градинските си пакети в приложението си. т.е.

garden install --app navigationdrawer

Това ще създаде папка libs/garden в текущата директория и ще постави градинските пакети там, което трябва да улесни включването.

person kitti    schedule 04.06.2014
comment
Това всъщност не работи - изглежда все още се зарежда от грешното място. Предполагам, че PyInstaller не го е взел като зависимост и не е копирал библиотеката. Мисля, че ключът към това е някаква директива на PyInstaller, просто не знам какво може да е. - person Chris Rae; 05.06.2014
comment
След инсталиране на приложението опитайте да добавите чекмедже за навигация като скрит import във вашата спецификация на pyinstaller. - person brousch; 05.06.2014

Имах подобен проблем с градинските модули. Когато инсталирам по следния начин:

стартирайте cmd /C "градинско инсталиране --kivy roulettescroll" стартирайте cmd /C "градинско инсталиране --kivy рулетка" стартирайте cmd /C "градинско инсталиране --kivy tickline" стартирайте cmd /C "градинско инсталиране --kivy datetimepicker"

Добавям PyInstaller ... --hidden-import=kivy.garden.tickline --hidden-import=kivy.garden.roulette --hidden-import=kivy.garden.roulettescroll --hidden-import=kivy.garden.datetimepicker ...

Мога да инсталирам и нямам проблеми с Python при събирането на модулите. За съжаление инструментът за избор на дата и час се показва като бели правоъгълници. Нямам представа какво може да ми липсва... Но поне преодолях проблема с импортирането.

person Daniel Cohen    schedule 14.09.2016

Отидете до пакетите на сайта на Python, там има папка с име garden, вижте в __init__.py. Има обяснение как да инсталирате navigationdrawer.

person Eduardo Campo    schedule 06.02.2016
comment
Моля, споделете повече подробности тук. Търсите подробни стъпки за вашето техническо ръководство за пълни документи - person Tejas Tank; 19.06.2017