در مسیر برنامه نویسی موبایل و دسکتاپ با پایتون حالا پس از آموزش مقدماتی کیوی (+) و آموزش طراحی متریال با کیوی (+) نوبت اجرای یک پروژه برای جمعبندی است. در این آموزش پروژه محور کیوی یک اپلیکیشن نقشه محور میسازیم. با دیتابیس کار میکنیم. کار با API در پایتون و سنسور GPS گوشی و بسیاری موارد جذاب دیگر! حتما ریز سرفصلها را بخوانید.
این اپلیکیشن با زبان پایتون و کتابخانه کیوی نوشته میشود. آن را میتوان روی موبایل (اندروید یا iOS) و دسکتاپ (ویندوز، لینوکس و مک) اجرا کرد.
این بسته در واقع هم به صورت مستقل قابل استفاده است و هم بخشی از بسته جامع آموزش برنامه نویسی کیوی است.
کیوی چیست؟
کیوی به انگلیسی Kivy یک کتابخانه متن باز است. به کمک کیوی میتوان برنامه نویسی چندسکویی با پایتون انجام داد. یعنی خروجی پروژه هم روی گوشی هوشمند و هم دسکتاپ اجرا شود.
آموزههای اصلی این بسته
- اجرای یک پروژه از صفر تا صد
- آموزش Kivy Garden و نقشه آن.
- کار با پایگاه داده در کیوی و پایتون.
- کار با API در پایتون و تجزیه JSON.
- ساخت ویجتهای سفارشی.
- کار با انیمیشن در کیوی.
- درک Geocoding و کار با آن.
- خروجی گیری از یک پروژه واقعی.
- کار با تجهیزات Native سیستمعامل.
این آموزش در یک نگاه
از صفر با ساخت پروژه شروع میکنیم. همه کتابخانههای لازم مثل کیوی و … را با هم نصب میکنیم.
آنگاه سراغ Kivy Garden می رویم. از باغ کیوی یک نقشه به پروژه اضافه میکنیم. رویدادهای بزرگنمایی و جابجایی نقشه را مدیریت میکنیم.
یک دیتابیس را با استفاده از SQlite میسازیم. مشخصات نقاط گردشگری را در آن وارد میکنیم. سپس این پایگاه داده را در پروژه وارد میکنیم. یاد میگیریم که روی دیتابیس Query بزنیم.
یاد میگیریم که چگونه یک Widget سفارشی بسازیم. از ماژول دیالوگ KivyMD ارث میبریم. یک دیالوگ لیستی برای خود میسازیم.
با مفهوم Geocoding آشنا میشویم. یاد میگیریم که چطور متن یک نشانی تبدیل به موقعیت آن میشود.
در یک سرویس دهنده Geocoding API ایرانی ثبت نام میکنیم. کار با API در پایتون و کیوی را یاد میگیریم.
این API به ما امکان قرار دادن جستجو در نقشه را میدهد. یک دیالوگ طراحی میکنیم. در این دیالوگ کاربر میتواند نام محل را جستجو کند. نقشه به محل مورد جستجو هدایت خواهد شد. سپس به زیباسازی اپلیکیشن میپردازیم.
سرانجام سراغ خروجی گیری میرویم. خروجی اندروید از پروژه کیوی آن هم با چنین جزئیاتی نکاتی زیادی دارد. این نکات و قلق کار را با هم میآموزیم.
استخراج فایل APK و اجرای کد پایتون روی گوشی اندروید پایان این پروژه نیست.
در برنامه نویسی چندسکویی یکی از نکات مهم کار با امکانات اختصاصی یا بومی است. برای گوشیهای هوشمند GPS دارند. ولی در دسکتاپ GPS نداریم.
یک مارکر GPS طراحی میکنیم. سپس کار با انیمیشن در کیوی را میآموزیم. کاری میکنیم که این مارکر مثل یک قلب به تپش درآید.
حالا نوبت به کار انداختن GPS است. به آموزش plyer در کیوی میپردازیم. از این کتابخانه متن باز استفاده میکنیم تا GPS به کار افتد.
سرانجام دوباره سراغ خروجی گیری می رویم. با استفاده از Buildozer خروجی پروژه کیوی را روی گوشی اندروید بررسی میکنیم.
در پایان این آموزش ایدههایی به شما برای ادامه کار میدهم.
چرا آموزش پروژه محور کیوی بینظیر است؟
- جنبه عملی و ورود به بازار کار دارد.
- نخستین بار در کشور منتشر میشود.
- بر اساس یک منبع معتبر و متن باز جهانی است.
- علاوه بر کیوی مهارت پایتونی شما نیز بهبود مییاید.
- با دیتابیس و انیمیشن و API و JSON و Buildozer کار میکنید.
پیشنیاز
1- آموزش مقدماتی برنامه نویسی کیوی (+)
2- آموزش KivyMD برای زیباسازی اپلیکیشنهای کیوی (+)
منبع آموزش
با سپاس از تلاشهای Erik Sandberg این دوره بر اساس پروزه متن باز خدمات کشاورزی وی طراحی شده است.
تجربه مدرس و رفع چالشهای این برنامه برای اجرای کاربران ایرانی نیز چاشنی این آموزش است.
عبارتهای کلیدی
آموزش پروژه محور کیوی | آموزش Kivy و KivyMD | کراس پلتفرم با پایتون | کار با API در پایتون | برنامه نویسی اندروید با پایتون | کار با دبتابیس در پایتون | آموزش کار با SQlite3 در python | آموزش برنامه نویسی کیوی | اجرای پایتون در اندروید | اجرای پایتون در ios | آموزش پایتون برای اندروید | کار با نقشه در پایتون | آموزش kivy garden | کار با نقشه در کیوی | برنمه نویسی موبایل با پایتون .
محمد طاها (خریدار محصول) –
سلام استاد. من همراه شما کد ها رو مینویسم اما قسمت Map Marker برای من نشانه هارو نمیاره درضمن هیچ خطایی نمیزنه و برنامه هم کار میکنه لطفا راهنمایی کنید.
مصطفی آصفی –
سلام وقت بخیر. لطفا مطابق مخزن گیت هاب همون نسخه هایی رو استفاده کنید که من نصب کردم و همین طور به مهاجرت گاردن کیوی تو مخزن خودش دقت کنید.
zeynabazari31@gmail.com (خریدار محصول) –
سلام و عرض ادب
من تا قسمت ۵ فیلم آموزش جلو رفتم و تمامی کتابخانه رو نصب کردم .ولی برای من اجرا نمیشه و خطا میده مشکل از کجا هست ؟
تا قسمت سه اجرا شد ولی قسمت ۵خیر
مصطفی آصفی –
سلام و وقت بخیر. لطفا خطای دریافتی رو اینجا بنویسید تا بتونیم هم فکری کنیم. اگه نیاز به ارسال عکس داشتین تصویر خطا رو تو آپلودسنتر رایگانی مثل پیکوفایل بارگذاری و لینکش رو اینجا ارسال کنید.
پینوشت: همون طور که در دوره مقدماتی (+) هم روزآمد کردم نسخه کیوی ۱ رو باستی حتما نصب کنید. pip install Kivy==1.11.1
راشین لطیفی –
سلام استاد
من این پروژه گردشگری رو پا به پای شما دارم میرم فقط اونجا که mdinputdialog رو از ورژن قدیمی گرفتین با کتابخونه جدید کیوی ترکیب کردین رو متوجه نشدم میشه فایلش رو بزارین چندروزه درگیرشم.اینم ایمیلمه اگه لطف کنید
مصطفی آصفی –
سلام. ببینید ما از دو نسخه کیوی استفاه نکردیم. نسخه ۱.۱۱ هست که تو این سورس (+) هم می بینید. من گمان می کنم شما با این که فراگیر بسته جامع هستید ولی احتمالا بخش دوم این بسته یعنی آموزش kivymd رو با دقت ندیدید. MDInputDialog یکی از ویجت های کتابخونه KIvyMD هست. این کتابخونه ورژن جدیدی از کیوی نیست. یک کتابخونه جانبی بر پایه کیوی هست. کار این کتابخونه اینه که روی کیوی سوار میشه و ویجت هایی رو اضافه می کنه که ظاهر زیباتری دارن.
v_ahmadzadeh@hotmail.com –
سلام استاد. چه دلیلی داشت برای نقشه از کیوی گاردن استفاده کردید؟ میشد از apiهای دیگه هم استفاده کرد؟ کیوی گاردن چه مزیتی داره؟
مصطفی آصفی –
سلام به شما. دلیل ویژه ای نداره و شما اگه ابزار دیگه ای رو ببینین که برای کارتون مناسب تره طبیعتا می تونید همون رو استفاده کنید. علت انتخاب من این بود که پروژه گاردن در کل یه پروژه برای مشارکت همگانی در کیوی هست که ممکنه برای برنامه نویس های ایرانی هم که علاقه به مشارکت تو پروژه های بزرگ دارن جالب باشه. گاردن محدود به نقشه نیست. این مخزن Garden (+) رو ببینید.
Ho33ein (خریدار محصول) –
چون احساس میکنیم که نیاز به یک پروژه محور دیگه هم داشته باشیم
اگر که میتونید خیلی ممنون میشیم همگیمون
مصطفی آصفی –
سلام و ممنون از پیشنهاد خوب شما. توصیه می کنم این آموزش ساخت فروشگاه با جنگو (+) رو دنبال بفرمایید. اصل کار که طراحی سرور هست اینجا توضیح داده شده و سیستم API هم تا پایان دوره کامل میشه.
اگه اون دوره کامل شد و باز در استفاده از اون API در گوشی مشکل داشتین همونجا این رو همفکری می کنیم که بیایم روی گوشی یا با PWA هم API رو بخونیم.
پینوشت: دقت کنید که کار با API رو در همین آموزش پروژه محور کیوی من توضیح دادم و عملا در انتهای اون دوره شما باید بتونید همون API رو با کمی تلاش تو قلب کیوی یا هر سیستم دیگه ای هم بخونید.
Ho33ein (خریدار محصول) –
سلام وقت بخیر استاد
استاد میتونید یک پروژه محور فروشگاه همراه با ((دیجنگو)) برای بک اند ساخت API هم آماده کنین و در سایت قرار بدین؟
عالی میشه
Ho33ein (خریدار محصول) –
با سلام و عرض ادب خسته نباشید میگم به تمامیه دوستان گرامی به خصوص استاد آصفی
بنده دوره رو به اتمام رساندم باید بگم که یکی از بهترین آموزش هایی بود که تماشا کردم و حتما حتما پیشنهاد میکنم برای دریافت این دوره
و اینکه استاد واقعا مسلط بودن به اینکار و خیلی منظم آموزش میدادن
خیلی ممنون از شما استاد
مصطفی آصفی –
سلام مجدد و ممنون از انرژی مثبت و لطفی که دارید. خوشحالم که آموزش برای شما مفید بوده.
Ho33ein (خریدار محصول) –
آقای آصفی خیلی ممنون برای نمایش دادن آیکون مارکر همون لینکی که فرستاده بودین رو تونسم اوکیش کنم
ServicesMarker(lat = lat, lon = lon, source=’Marker.png’) با این روش
مصطفی آصفی –
سلام مجدد. دست شما درد نکنه که اطلاع دادین. خوشحالم که مشکلتون حل شد.
Ho33ein (خریدار محصول) –
سلام خسته نباشید آقای آصفی
یک مشکل داشتم اینه که چرا آیکون مارکر برام بالا نمیاره
قسمت 6 MapMarkerPopup
همه چی درسته نوشته شده
اما آیکونش بالا نمیاره
خیلی ممنون میشم کمک کنید
توی قسمت نظرات هم نتونستم جوابمو پیدا کنم
مصطفی آصفی –
سلام به شما. بله تو جامعه کیوی در حال حاضر در نسخه ۲ کیوی این مشکل هست. ظاهرا مشکل اینه که جای آیکن مارکر رو نمی تونه خودبهخود پیدا کنه. این لینک (+) رو بررسی کنید. در اون source آیکن مارکر دستی داده شده. اگه مشکل حل نشد ناچار باید کیوی نسخه ۱ رو مطابق آموزش نصب و فعلا از اون نسخه استفاده کنید.
لطفا اگه نتیجه گرفتید اینجا گزارش کنید که دوستان بعدی هم متوجه بشن.
رحیم خیرگو –
سلام استاد ممنون که راهنمایی کردید من مطلبی تو اینترنت دیدم که جالب بود بهتره با اجازه شما به اشتراک بذارم
قبل از اجرای دستور buildozer android debug مستقل از بویلوزر و حتی بدون نیاز به فیلتر شکن میتوانیم sdk اندروید را به راحتی نصب کنیم و من امتحان کردم مشکلی نبود و شاید ndk رو هم بشه با این روش نصب کرد که من نیاز نداشتم و امتحان نکردم
sudo apt update && sudo apt install android-sdk
با نصب به این روش بویلدوزر از نصب sdk رد میشه
مصطفی آصفی –
سلام به شما. خیلی ممنون از اشتراک گذاری. این روحیه خیلی قابل تحسینه فقط ممنون میشم که در چنین مواردی لینک هم بگذارین.
در مورد مطبی که گفتین ببینید ما در هر صورت برای ساخت apk به sdk و ndk نیاز داریم. منتها شاید اون مطلبی که خوندین منظورش این بوده که می تونید اول بیلدوزر رو بدون نصب sdk نصب کنید بعد از یک پوشه sdk آماده استفاده کنید یا شاید بعدها بسته به نیاز sdk رو جداگانه نصب کنید.
mahdi (خریدار محصول) –
سلام استاد یه سوال داشتم زمانی که در محدوده نقشه که latوlon. ان در بانک. اطلاعلاتی sqllite ثبت شده موس رو جابجا می کنیم اطلاعات از بانک اطلاعاتی به تاپل منتقل میشه اما ویجتی در روی نقشه نمیکاره. هیچ اروری هم نمیده ممنون میشم راهنمایی بفرمایید. تشکر
مصطفی آصفی –
سلام به شما. اگه از درستی کدتون مطمئن هستید توصیه می کنم یه پروژه آزمایشی کوچیک با ورژن متفاوتی از کیوی درست کنید و کد رو امتحان کنید. من خطای map روی ورژن کیوی ۲ رو دیدم که کاربران گزارش کردن. خودم البته هنوز امتحان نکردم.
رحیم خیرگو –
سلام و خسته نباشید
استاد شرمنده زیاد سوال میکنم
در هنگام دانلود sdk توسط buildozer oxh خطا میده فیلتر شکن هم درست کار میکنه و آمریکا رو نشون میده تو براوسر حتی تو سایت کیوی هم رفتم تا از طریق
Packaging with python-for-android به صورت دستی دانلود کنم باز صفحه اش رو باز نمیکنه
متن خطا:
rahim@rahim-G41MT-S2:~/Desktop/test$ buildozer android debug deploy run
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Install platform
# Apache ANT found at /home/rahim/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK is missing, downloading
Traceback (most recent call last):
File “/home/rahim/.local/bin/buildozer”, line 8, in
sys.exit(main())
File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/scripts/client.py”, line 13, in main
Buildozer().run_command(sys.argv[1:])
File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/__init__.py”, line 1058, in run_command
self.target.run_commands(args)
File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/target.py”, line 92, in run_commands
func(args)
File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/target.py”, line 102, in cmd_debug
self.buildozer.prepare_for_build()
File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/__init__.py”, line 176, in prepare_for_build
self.target.install_platform()
File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/targets/android.py”, line 468, in install_platform
self._install_android_sdk()
File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/targets/android.py”, line 259, in _install_android_sdk
self.buildozer.download(url,
File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/__init__.py”, line 686, in download
urlretrieve(url, filename, report_hook)
File “/usr/lib/python3.8/urllib/request.py”, line 1855, in retrieve
block = fp.read(bs)
File “/usr/lib/python3.8/tempfile.py”, line 612, in func_wrapper
return func(*args, **kwargs)
ValueError: read of closed file
ممنون میشم راهنمایی کنید زیاد کلنجار رفتم نشد
مصطفی آصفی –
سلام به شما آقای خیرگو. خط نهم خطای دریافتی رو دفت کنید:
Android SDK is missing, downloading
این یعنی vpn شما نتونسته SDK رو دریافت کنه. متاسفانه موضوع اتصال به سرورهای گوگل سخت شده و باید از VPN خوب و پیوسته برقرار استفاده کنید.
پینوشت: فرآیند ایجاد APK با وجود چنین محدودیت هایی فرآیند دشواریه به ویژه اولین بار. صبور باشین.
رحیم خیرگو –
سلام
استاد برای تبدیل فایل به اندروید کتابخونه ها که داخل برنامه ایمپورت میکنیم رو در لینوکس باید نصب کنیم و همچنین پوشه venv رو هم باید کپی کنیم یا کلا فقط فایلهای پایتون و .kv کافی هستند
مصطفی آصفی –
سلام به شما آقای خیرگو. به نظرم آموزش رو با دقت نمی بینین. همون طور که تو درس ۱۴ آموزش مقدماتی کیوی و تو درس ۱۴ همین بسته اشاره کردم شما ماژول هایی که تو برنامه استفاده می کنید رو باید تو بخش requirements فایل spec اضافه کنید. لینک پایین هم از مستندات بیلدوزر یه نمونه افزودن کیوی و ریکوئست درج شده:
Buildozer Specifications
رحیم خیرگو –
سلام استاد موقع اجرا این خطا رو میده
Unable to import package ‘kivy.garden.mapview.MapView’
هم با pip نصب کردم هم با garden پیام نصب موفق رو میده
Requirement already satisfied: mapview in h:\python\map\env\lib\site-packages (1.0.5)
Requirement already satisfied: kivy-garden.mapview in h:\python\map\env\lib\site-packages (from mapview) (1.0.5)
مصطفی آصفی –
سلام به شما. یه فایل متنی روزآمدسازی نحوه نصب نقشه به اون درس پیوست کردم لطفاً مطالعه کنید.
فاطمه –
سلام استاد
استاد من زمانی میخوام خروجی بگیرم با این ارور KeyError: ‘kivy.garden.mapview
مواجه میشم تمام راه هایی که گفتید به بقیه دوستان رو امتحان کردم و راه های دیگه از سایت های دیگه
اما باز هم ارور میده
کلی براش زمان گذاشتم ولی واقعا ناامید کننده است .
اینکه نسخه پایتون 3.6 هست مشکلی ایجاد میکنه ؟؟؟
مصطفی آصفی –
سلام به شما. لطفا متن خطایی که ردیافت می کنید رو کامل بنویسید تا بتونیم بهتر هم فکری کنیم. همبن طور لطفا نسخه کیوی که استفاده می کنید رو هم بنویسید.
ناامید نباشید برنامه نویسی همیشه همین طوره و کار با جامعه متن باز به خصوص در پایتون هم بیشتر.
فاطمه –
سلام استاد وقت به خیر
استاد من یک عکس و یک دکمه رو در صفحه اول برنامم بالا اوردم اما با کلیک روی هر کدوم به صفحه بعدی دسترسی پیدا نمیکنم
فایل کیوی :
:
name:”main0″
ItemMenuForFitness:
source:’P1.png’
size_hint:None , None
size: dp(500), dp(500)
pos_hint: {“center_x”: 0.5 , “center-y”: 1.5}
MDFillRoundFlatIconButton:
icon:”login”
text:”Login”
pos_hint:{“center_x”: 0.5 , “center-y”: 0.5}
on_release: root.manager.current=”Main1″
:
name:”main1″
BoxLayout:
padding: dp(75)
MDLabel:
“text:”welcom
“halign:”center
font_size:”25sp”
و در main.py هم اینطوری نوشتم :
class Manager(ScreenManager):
pass
class main0(Screen):
pass
class Main1(Screen):
pass
class MaiinApp(MDApp):
def build(self):
self.theme_cls.theme_style = “Dark”
return Factory.main0()
MaiinApp().run()
مصطفی آصفی –
سلام به شما. می بخشید که جوابتون خیلی دیر شد. ببینید در بخش نظرات بیشتر به رفع خطا می پردازیم. من با این که دوست دارم ولی حقیقتا نمی رسم که کدهای مفصل رو تست کنم. وقتی به خطایی می خورید خطا رو گزارش کنید تا هم فکری کنیم.
در مورد سوالتون می تونم ارجاع بدم به آموزش KivyMD (+) و که درسهای دهم یازدهم در مورد کلیک صحبت کردیم. لطفا برگردید و اون مباحث رو مرور کنید.
محمد عطایی (خریدار محصول) –
سلام استاد آصفی خسته نباشید
بنده این آموزش کی وی شما رو تهیه کردم.
یک سوالی مهم دارم ازتون اینکه, چگونه در کی وی میتونم تکست فارسی کنم
ممنون از اینکه پاسخ میدید.
مصطفی آصفی –
سلام به شما. سلامت باشید همچنین.
این موضوع در کیوی هنوز به شیوه رسمی حل نشده. اما همون طور که در درس نهم آموزش KivyMD (+) در موردش صحبت کردیم، برای این کار میتونید از دو کتابخونه arabic_reshaper و python_bidi استفاده کنید.
پینوشت: این ها در برخی پروژه ها موقع ایجاد خروجی اندروید اذیت می کنن.
وحید ییلاق بیگی (خریدار محصول) –
سلام جناب آصفی عزیز ممنون از دوره های بسیار عالی
من دوره های Python ، Kivy و KivMD رو تهیه کردم و گذروندم ولی فکر میکنم هنوز با طراحی ظاهر اپلیکیش مشکل دارم
هدف من ساخت اپلیکیشن های ساده محاسبه گر مثل ماشین حساب هست ولی چیدن ویجت ها در جای مناسب خودشون هنوز برام گنگ هست
این دوره رو هم تهیه کردم چون فکر میکردم بهم کمک کنه ولی دیدم به این موردی که من توش مشکل دارم پرداخته نشده
آیا مثالی وجود داره مثل ساخت ماشین حساب با KivyMD که بتونم از اون استفاده کنم و اپلیکیشن مورد نظرم رو بسازم؟
ممنونم از شما
مصطفی آصفی –
سلام به شما. این نمونه کد ماشین حساب با کیوی (+) می تونه به شما کمک کنه. شما یک بازبینی در مورد لیوت ها حتما در این آموزش مقدماتی کیوی (+) درس چهارم داشته باشید.
ما یک مفهوم داریم به نام لیوت و یک مفهوم به نام ویجت. لیوت ها کمک می کنن به چیدمان ویجت ها. ضمنا در KivyMD هم همچنان این سلسله مراتب برقراره فقط شما در لیوت ها به جای چیدن ویجت های کیوی از ویجت های KivyMD استفاده می کنید که متریال هستن.
طاها –
سلام استاد.متاسفانه تمام این موارد رو امتحان کردم اما همچنان با همون ارور مواجه میشم.باز هم تلاشم رو میکنم و اگر به نتیجه ای رسیدم حتما خبر میدم.
طاها –
سلام استاد.بنده همانطور که فرموده بودید با دستور from kivy_garden.mapview import MapView فراخوانی کردم.هنگام اجرا هیچ مشکلی نداره و به خوبی با دستورات جدید اجرا میشه.
اما هنگام خروجی گرفتن با ارور زیر مواجه میشم:
11-08 12:59:14.964 27494 27742 I python : Traceback (most recent call last):
11-08 12:59:14.964 27494 27742 I python : File “/home/taha/Downloads/services_map/.buildozer/android/app/main.py”, line 2, in
11-08 12:59:14.965 27494 27742 I python : File “/home/taha/Downloads/services_map/.buildozer/android/app/servicesmapview.py”, line 1, in
11-08 12:59:14.966 27494 27742 I python : ModuleNotFoundError: No module named ‘kivy_garden’
11-08 12:59:14.966 27494 27742 I python : Python for android ended.
طبق ارور اصلا ماژول kivy_graden رو نمیشناسه.
بنده در فایل buildozer.spec به صورت دستی garden_requirements = mapview را اضافه کردم.
همچنین در بخش Application requirements یک بار kivy_garden و یک بار هم kivy_garden.mapview را اضافه کردم،اما همچنان با ارور ModuleNotFoundError: No module named ‘kivy_garden مواجه میشم.
توی سایت های github,stackoverflow و… هم گشتم و راه کار های پیشنهادی را امتحان کردم،اما نتیجه تغییری نکرد.
مصطفی آصفی –
سلام مجدد. مطابق این گزارش (+) ظاهرا نحوه استفاده دز پیش نیازها عوض شده.
باید garden_requirements = mapview رو حذف و در بخش پیشنیازها به این صورت کار کنید
requirements = python3,kivy,kivy_garden.mapview
فقط دقت کنید که سابقه بیلدوزر (پوشه ای که ساخته میشه و کتابخونه های دریافت شده) رو پاک کنید. طبق این گزارش همه مشکل اینه که ماژول kivy_garden شناسایی نمیشه. اگر این کار مشکل رو حل نکنه نهایتا تنها چیزی که به ذهن من می رسه اینه که شاید این یک باگ باشه و ناشی از عدم تطابق نسخه کتابخونه ها. مثلا نسخه کیوی با گاردن یا حتی نسخه پایتون پروژه.
چون گاهی اتفاقی میفته که نهایتا گزارش پیش فرضی که برنامه نویس قلب بیلدوزر براش در نظر گفته همون پیدا نشدن ماژول هست.
لطفا اگه نتیجه ای گرفتید بنده رو هم مطلع کنید چون در حال حاضر سیستمی برای آزمایش کیوی ندارم.
طاها –
سلام مجدد.mapview را با دستوری که فرمودید نصب کردم اما ارور بر طرف نشد.توی سورس کد ها باید mapview رو از طریق دیگری فراخوانی کنم؟یا همچنان باید با garden اون رو import کنم؟
دستور from kivy.garden.mapview import MapView باید تغییر کند؟
مصطفی آصفی –
سلام مجدد. بله برای فراخوانی هم باید به شکل پایین بنویسید
from kivy_garden.mapview import MapView
ضمنا در بیلدوزر هم که حتما باید پیش نیازهای گاردن رو اضافه کنید
garden_requirements = mapview
باز بررسی کنید و اگر مشکلی بود لاگ خطاتون در بخش مشکل دار رو با تفصیل بیشتر بگذارید شاید بهتر بتونم نظر بدم. اگر هم حل شد اطلاع بدین ممنون میشم که نفرات بعدی استفاده کنن.
طاها –
سلام استاد.بنده فایل biuldozer.spec را ساختم.اما توی اون فایل اصلا بخشی برای گاردن نیست تا پیشنیاز های اون که در این اپ mapview هست رو بخوام اضافه بکنم.هنگام خروجی گرفتن با خطای زیر مواجه میشم و اپ کرش میکنه:
KeyError: ‘kivy.garden.mapview
بخش garden requirements را هم به صورت دستی در فایل spec اضافه کردم اما همچنان با همون خطا مواجه میشم.
ممنون میشم راهنمایی بفرمایید.
مصطفی آصفی –
سلام به شما. برای نصب نقشه از باغ کیوی به جای دستور
garden install mapview
به دلیل انتقال مخزن به نشانی زیر
https://github.com/kivy-garden/mapview
لطفا از پیپ برای نصب استفاده کنید
pip install mapview
این موضوع به عنوان اصلاحی و روزآمدسازی درس دو پیوست شد.
هادی –
سلام آقای آصفی
یک سوال ازتون داشتم ممنون میشم راهنمایی بنده را بکنید ، بنده می خواهم یک نرم افزار ویندوز با پایتون ایجاد نمایم اما متاسفانه بنده رابط گرافیکی خوبی که مد نظرم هست را نمیتوانم طراحی کنم . آیا می شود از react یا electron برای ایجاد رابط کابری پایتون استفاده نمود ؟ و اینکه بهترین رابط کاربری برای زبان پایتون kivy است ؟
مصطفی آصفی –
سلام به شما. برای رابط کاربری با پایتون شما می تونید از Tkinter و همین طور PyQt هم استفاده کنید. من البته Kivy رو بیشتر توصیه می کنم. به ویژه این که مطابق این آموزش KivyMD (+) امکان طراحی متریال هم داره.
البته اگر برنامه فارسی زبان قصد دارید تولید کنید این کتابخونه هنوز پوشش کامل نیست و دردسرهایی داره که در همون آموزش هم توضیح دادم.
اگر اپ فارسی زبان قصد دارید تولید کنید و برای ساخت پیش نمون (Prototype) عجله دارید توصیه می کنم Tkinter استفاده کنید.
اما اگر قصد توسعه در آبنده دارید و شاید نسخه موبایل هم نیاز باشه در این صورت از کیوی گزینه بهتری هست. انشالله آموزش PyQt5 هم آبان ماه توسط آقای علیجانی در هم رویش منتشر خواهد شد. این نسخه PyQt هم قابلیت خروجی اندروید داره.
حسین عنایتی –
سلام استاد
خواستم یک سوال بپرسم
ایا اشکال دارد بنده دوره شمارو خریداری و بعدشبیه مطالب شما رو حضوری یا مثلا انلاین اموزش بدم؟
مصطفی آصفی –
سلام به شما. وجود برنامه نویسانی مثل شما در کشور که چنین پایبند به حق نشر هستند، باعث افتخار و امیدواریه.
در رابطه با استفاده از سرفصلهای این آموزش به عنوان مبنای کار خودتون، مشکلی نیست، استفاده کنید، فقط توصیه میکنم هر جای کار که در این آموزش برای خودتون سوال شد و حل کردید، حتما به نفرات بعدی تجربه خودتون رو هم آموزش بدید تا زمانی که شما صرف کردین نفرات بعدی صرفهجویی کنن.
sadeghisaa@yahoo.com –
[ERROR ] [Image ] Error reading file C:\Users\amin\PycharmProjects\main User\venv\lib\site-packages\kivy_garden\mapview\icons\marker.png
استاد این برای چی هست
مصطفی آصفی –
سلام به شما. می گه این فایل عکس مارکر که در کد استفاه کردید رو پیدا نمی کنه. ظاهرا mapview آرکایور شده و منتقل شده به این نشانی:
https://github.com/kivy-garden/mapview
و باید از پیپ برای نصبب اون استفاده کرد (به جای garden که در درس 2 گفتم):
pip install mapview
سید محمد صادقی (خریدار محصول) –
استاد می شود بیشتر توضیح بدهید
سید محمد صادقی (خریدار محصول) –
venv) C:\Users\sadeg\PycharmProjects\Raya User>python.exe C:\Users\sadeg\PycharmProjects\Raya User\venv\Scripts\garden install mapview
C:\Users\sadeg\PycharmProjects\Raya User\venv\Scripts\python.exe: can’t find ‘__main__’ module in
استاد در نصبgarden install mapview با ارور بالا برخورد می کنم
مصطفی آصفی –
سلام. از محل دکمه اجرای برنامه برید به تنظیمات اجرای فایل (Debug/Run Confuguration) و بعد مطمئن بشید که Script path رو به درستی برای فایل اصلی تنظیم کردید. ضمنا Python directory رو هم درست تنظیم کرده باشید.
سید محمد صادقی (خریدار محصول) –
mod = __import__(package)
File “”, line 983, in _find_and_load
File “”, line 967, in _find_and_load_unlocked
File “”, line 668, in _load_unlocked
File “”, line 640, in _load_backward_compatible
KeyError: ‘kivy.garden.mapview’
چگونه این ارور را درست کنم و اگر می شود سوال قبلی من را هم پاسخ دهید
مصطفی آصفی –
سلام به شما. این خطا رو در بیلدوزر دریافت میکنید؟ در این صورت همون طور که در آموزش توضیح دادم باید در spec در بخش garden نام mapview رو اضافه کنید.
علی –
سلام خسته نباشید
ببخشید یک سوال داشتم!
این دوره اموزش 0 تا 100 کیوی است ؟ یعنی اینکه من از کیوی هیچ چیزی بلد نیستم و ایا میتوانم با این اموزش کیوی را به خوبی یادبگیرم؟
مصطفی آصفی –
سلام به شما. همون طور که در فیلم معرفی هم عرض کردم، برای شروع باید اول این دوره آموزش kivy (کلیک کنید) و بعد این آموزش KivyMD (کلیک کنید ) رو بگذرونید.