मैं विंडोज़ पर pyinstaller के साथ पाइथन एप्लिकेशन इंस्टॉल करने का प्रयास कर रहा हूं जहां मैं tkcalendar का उपयोग कर रहा हूं। एप्लिकेशन काम कर रहा है लेकिन tkcalendar.Calendar नहीं है।

जब मैं इंस्टॉलेशन के बिना एप्लिकेशन चला रहा हूं तो सबकुछ काम करता है लेकिन अगर मैं ऐसा करता हूं, तो कैलेंडर विजेट प्रकट नहीं होता है। मुझे लगता है कि pyinstaller इस मॉड्यूल को देखता है लेकिन उसे मॉड्यूल के साथ समस्या है जो tkcalendar उपयोग कर रहा है। मैंने pyinstaller को --path=/.../python/Lib/site-packages के साथ चलाने का प्रयास किया लेकिन यह काम नहीं किया। मॉड्यूल फ़ाइलों को एप्लिकेशन निर्देशिका में कॉपी करने से भी मदद नहीं मिली।

7
Bodzio322 5 सितंबर 2019, 22:30

3 जवाब

सबसे बढ़िया उत्तर

मुद्दा tkcalendar से नहीं आता है बल्कि इस तथ्य से आता है कि PyInstaller दूसरे स्तर के आयात का पता नहीं लगाता है। इस समस्या को हल करने का एक तरीका tkcalendar के दस्तावेज़ों में HowTos में समझाया गया है। अनुभाग:

PyInstaller के साथ किसी एप्लिकेशन को बंडल करते समय, एक है समस्या के साथ tkcalendar की बेबेल निर्भरता का पता लगाना। यह द्वारा तय किया जा सकता है --hidden-import विकल्प का उपयोग करके:

$ pyinstaller --hidden-import babel.numbers myscript.py

या .spec फ़ाइल को संपादित करके:

hiddenimports=["babel.numbers"]
2
j_4321 6 सितंबर 2019, 14:38

अगर किसी को भी यही समस्या मिली। Tkcalendar 1.5.0 में Calendar.py में आयात करने में समस्या है।

tkcalendar फ़ोल्डर का पता लगाएँ (शायद /.../python/Lib/site-packages/tkcalendar) और calendar.py के अंतर्गत अनुपलब्ध मॉड्यूल के लिए एक अतिरिक्त आयात जोड़ें:

import calendar
from babel.dates import format_date, parse_date, get_day_names, get_month_names
from babel.numbers import *  # Additional Import```
0
Bodzio322 6 सितंबर 2019, 12:30

Pyinstaller के साथ बंडल करते समय, अपनी पायथन लिपि में निम्नलिखित कोड जोड़ें

import babel.numbers
0
Ajinkya Sonwane 21 अक्टूबर 2020, 21:09