انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: ساخت خروجی قابل نصب از برنامه GUI  (دفعات بازدید: 2287 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین abramazani

  • Jr. Member
  • *
  • ارسال: 80
  • جنسیت : پسر
  • برنامه نویس پایتون!!
    • سایت شخصی
ساخت خروجی قابل نصب از برنامه GUI
« : 12 اسفند 1400، 01:36 ب‌ظ »
باسلام
من در حال توسعه یک اپلیکیشن GUI با ماژول tkinter در پایتون هستم و میخواهم از این پروژه خروجی قابل نصب در گنو/لینوکس دریافت کنم(به عنوان مثال فایل deb در توزیع های بر پایه دبیان)
من جستجوهای زیادی کردم و به pypi.org/project/stdeb رسیدم.من تلاش می کنم با این پکیج پروژه پایتون خود را به deb تبدیل کنم.
فایل های پروژه را (از جمله setup.py و فایل projectname.desktop) را پیوست کرده ام.
من این دستور را وارد می کنم:
python3 setup.py --command-packages=stdeb.command bdist_deb
این دستور به خوبی اجرا می شود اما برخی هشدار ها نمایش داده می شود:
(dpkg-source: warning: extracting unsigned source package (mahab_1.0.0-1.dsc
dh_auto_configure: warning: Please use the third-party "pybuild" build system instead of python-distutils
dh_auto_configure: warning: This feature will be removed in compat 12.
dh_auto_test: warning: Please use the third-party "pybuild" build system instead of python-distutils
dh_auto_test: warning: This feature will be removed in compat 12.
به هر حال فایل deb در پوشه deb_dist ساخته می شود.من تلاش می کنم با این دستور آن را نصب کنم:
sudo dpkg -i python3-projectname1.0.0_all.debاما به این ارور بر میخورم:
python3-mahab_1.0.0-1_all.deb
Selecting previously unselected package python3-mahab.
(Reading database ... 203695 files and directories currently installed.)
Preparing to unpack .../python3-mahab_1.0.0-1_all.deb ...
Unpacking python3-mahab (1.0.0-1) ...
dpkg: dependency problems prevent configuration of python3-mahab:
 python3-mahab depends on python3-psutil; however:
  Package python3-psutil is not installed.
 python3-mahab depends on python3-pyglet; however:
  Package python3-pyglet is not installed.
 python3-mahab depends on python3-six (= 1.16.0); however:
  Version of python3-six on system is 1.14.0-2.

dpkg: error processing package python3-mahab (--install):
 dependency problems - leaving unconfigured
Processing triggers for bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu2) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Errors were encountered while processing:
 python3-mahab
من چطور می توانم آن را برطرف کنم؟و همچنین نام پکیج deb من python3-projectname می شود که این خیلی خوب نیست.آیا میتوان آن را تغییر داد؟
باتشکر از پاسخ شما...
حرف زدن مهم نیست... کُدت را نشان بده!

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #1 : 14 اسفند 1400، 12:26 ب‌ظ »
باسلام
این دستور به خوبی اجرا می شود اما برخی هشدار ها نمایش داده می شود:
(dpkg-source: warning: extracting unsigned source package (mahab_1.0.0-1.dsc
dh_auto_configure: warning: Please use the third-party "pybuild" build system instead of python-distutils
dh_auto_configure: warning: This feature will be removed in compat 12.
dh_auto_test: warning: Please use the third-party "pybuild" build system instead of python-distutils
dh_auto_test: warning: This feature will be removed in compat 12.
برای اخطار اول، مشکل از این هست که dpkg-source سعی می‌کنه امضای اون بسته کد رو بررسی کنه ولی از اونجایی که امضا نداره، اخطار میده که این بسته امضا نداره. حواستون باشه این بسته کد هست، هنوز به بسته deb تبدیل نشده.
دوتا راه حل دارید، یا بسته کد (که احتمالا tar هست و با gzip یا xz فشرده شده) رو امضا کنید یا اینکه به dpkg-source بگید امضای اونها رو بررسی نکنه. به نظرم اولی زیاد مناسب نیست چون شما دارید برنامه رو هی توسعه میدید و اگه بخواهید هر دفعه اون رو امضا کنید، راحت نیست. معمولا وقتی امضا میشه که قراره یه نسخه برنامه منتشر بشه یا می‌خواهید اون کد رو به یکی دیگه بدید.
اگه می‌خواهید dpkg-source امضای اون رو بررسی نکنه، باید آپشن  no-check-- رو بهش بدید. این دستور، خودکار توی مراحل ساخت بسته deb اجرا میشه. احتمالا باید بتونید از طریق فایل‌های تنظیمات یا خط فرمان، کار کنید که این آپشن هم به دستور داده بشه.

در مورد بقیه اخطار‌ها، مشخصه که چی گفته. گفته که به جای python-distutils، از pybuild برای ساخت بسته‌های deb استفاده کنید چون این ویژگی قراره توی compat نسخه 12، برداشته بشه. compat یه استاندارد برای ساخت بسته‌های deb هست.
فکر کنم stdeb از python-distutils استفاده می‌کنه، مطمئن نیستم. شاید توی نسخه‌های بعدی stdeb، از pybuild استفاده بشه.

این لینک‌ها برای ساختن بسته deb به شما کمک می‌کنه.
https://wiki.debian.org/BuildingTutorial
https://wiki.debian.org/HowToPackageForDebian
https://wiki.debian.org/Packaging
https://www.debian.org/intro/help
توی صفحات بالا، لینک‌هایی به بقیه صفحات مرتبط وجود داره. بهتره اونها رو هم ببینید. بسته packaging-tutorial شامل یه آموزش کوچک به چندین زبان  توی قالب‌های pdf و متن معمولی برای ساخت بسته‌های deb هست. (متاسفانه فارسی نداره) فکر کنم آموزش اون، توی ویکی دبیان هم گفته شده.

نقل‌قول
به هر حال فایل deb در پوشه deb_dist ساخته می شود.من تلاش می کنم با این دستور آن را نصب کنم:
sudo dpkg -i python3-projectname1.0.0_all.debاما به این ارور بر میخورم:
python3-mahab_1.0.0-1_all.deb
Selecting previously unselected package python3-mahab.
(Reading database ... 203695 files and directories currently installed.)
Preparing to unpack .../python3-mahab_1.0.0-1_all.deb ...
Unpacking python3-mahab (1.0.0-1) ...
dpkg: dependency problems prevent configuration of python3-mahab:
 python3-mahab depends on python3-psutil; however:
  Package python3-psutil is not installed.
 python3-mahab depends on python3-pyglet; however:
  Package python3-pyglet is not installed.
 python3-mahab depends on python3-six (= 1.16.0); however:
  Version of python3-six on system is 1.14.0-2.

dpkg: error processing package python3-mahab (--install):
 dependency problems - leaving unconfigured
Processing triggers for bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu2) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Errors were encountered while processing:
 python3-mahab
بهتره این بسته‌ها رو توی محیط chroot یا توی یه کانتینر مثل داکر یا ماشین‌مجازی نصب کنید تا سیستم اصلی شما خراب نشه.
خطا مربوط به این  هست که وابستگی‌های بسته شما نصب نشده. dpkg از مخازن استفاده نمی‌کنه و نمی‌تونه وابستگی‌هایی که توی سیستم وجود ندارند رو از مخازن نصب کنه. از apt استفاده کنید. این شکلی:
sudo apt install /path/to/python3-mahab_1.0.0-1_all.deb برای نصب برنامه‌ها، تا جایی که می‌تونید، مستقیم از dpkg استفاده نکنید.

ولی الان بسته بالایی نصب شده اما وابستگی‌های اون نصب نشده، به خاطر همین فکر کنم دستور بالایی کار نکنه. به جاش رو امتحان کنید.
sudo apt install -f
میدونید که زکات علم نشر آن است

آفلاین abramazani

  • Jr. Member
  • *
  • ارسال: 80
  • جنسیت : پسر
  • برنامه نویس پایتون!!
    • سایت شخصی
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #2 : 14 اسفند 1400، 01:22 ب‌ظ »
بهتره این بسته‌ها رو توی محیط chroot یا توی یه کانتینر مثل داکر یا ماشین‌مجازی نصب کنید تا سیستم اصلی شما خراب نشه.
خطا مربوط به این  هست که وابستگی‌های بسته شما نصب نشده. dpkg از مخازن استفاده نمی‌کنه و نمی‌تونه وابستگی‌هایی که توی سیستم وجود ندارند رو از مخازن نصب کنه. از apt استفاده کنید. این شکلی:
sudo apt install /path/to/python3-mahab_1.0.0-1_all.deb برای نصب برنامه‌ها، تا جایی که می‌تونید، مستقیم از dpkg استفاده نکنید.

ولی الان بسته بالایی نصب شده اما وابستگی‌های اون نصب نشده، به خاطر همین فکر کنم دستور بالایی کار نکنه. به جاش رو امتحان کنید.
sudo apt install -f
خیلی ممنون از پاسختون.این ها رو امتحان می کنم انشاالله که درست بشه!
فقط من خیلی با این مباحث آشنایی ندارم اگه میشه یکم درباره این مباحث توضیح بدین یا اینکه مقالاتی(ترجیحا فارسی)بفرستین تا یکم در این باره اطلاعات کسب کنم
من تبدیل py به deb رو برای منتشر کردن این پروژه برای گنو/لینوکس میخواستم.اگه پیشنهاد دیگه ای دارین حتما بگین...
حرف زدن مهم نیست... کُدت را نشان بده!

آفلاین جعفر فرقانلوژ

  • High Hero Member
  • *
  • ارسال: 5100
  • جنسیت : پسر
  • اممم . اره دیگه! mehr32
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #3 : 14 اسفند 1400، 01:44 ب‌ظ »
جالبه
ایکونتون رو درست کنید  :D
چطور کار می کنه ؟ یا بهتره بگم چه کار هایی رو میکنه ؟
دیگر به انجمن باز نخواهم گشت شاید جایی با این نام پیدام کنید اگه کاری با من دارید : qxc9966@protonmail.com

آفلاین سودو.

  • High Hero Member
  • *
  • ارسال: 3095
  • جنسیت : پسر
  • :(){ :|:& };:
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #4 : 14 اسفند 1400، 01:49 ب‌ظ »
جالبه
ایکونتون رو درست کنید  :D
چطور کار می کنه ؟ یا بهتره بگم چه کار هایی رو میکنه ؟
آدرس سایتش رو گذاشته ! خب توضیح داده اونجا ! بخونش !
آرچ و گنوم!

آفلاین جعفر فرقانلوژ

  • High Hero Member
  • *
  • ارسال: 5100
  • جنسیت : پسر
  • اممم . اره دیگه! mehr32
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #5 : 14 اسفند 1400، 01:53 ب‌ظ »
گیت هابه
تا جایی که من دیدم فقط گفته بود محافظت از باتری نگفته بود چه پروسه ای انجام میشه تا محافظت کنه
دیگر به انجمن باز نخواهم گشت شاید جایی با این نام پیدام کنید اگه کاری با من دارید : qxc9966@protonmail.com

آفلاین سودو.

  • High Hero Member
  • *
  • ارسال: 3095
  • جنسیت : پسر
  • :(){ :|:& };:
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #6 : 14 اسفند 1400، 02:00 ب‌ظ »
گیت هابه
تا جایی که من دیدم فقط گفته بود محافظت از باتری نگفته بود چه پروسه ای انجام میشه تا محافظت کنه
منظورم همون بود !  من برنامه نویس نیستم ( هنوز )
گفتم شاید این لینک رو ندیدی : https://abramazani.github.io/mahab/
به این نوع سایت که روی گیت هاب میسازنش چی میگن ؟ بعد لینکی که خود ایشون گذاشتم رو چی میگن ؟ به ترتیب سایت گیت هابی و مخزن گیت هاب یا چی ؟!!! زیاد به دنیای برنامه نویسا وارد نیستم ! با پیکسل بیشتر سر و کله میزنم تا صفر و یک !
آرچ و گنوم!

آفلاین abramazani

  • Jr. Member
  • *
  • ارسال: 80
  • جنسیت : پسر
  • برنامه نویس پایتون!!
    • سایت شخصی
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #7 : 14 اسفند 1400، 03:14 ب‌ظ »
گیت هابه
تا جایی که من دیدم فقط گفته بود محافظت از باتری نگفته بود چه پروسه ای انجام میشه تا محافظت کنه
سلام
شما وقتی میری مثلا vscode نصب کنی می نویسه چطور بهتون حروف و توابع رو پیشنهاد میده!!؟؟ :D
عمدتا کارایی رو میگن..
البته میتونین با یه نگاهی سطحی به سورس کد متوجه این بشین!!
حرف زدن مهم نیست... کُدت را نشان بده!

آفلاین جعفر فرقانلوژ

  • High Hero Member
  • *
  • ارسال: 5100
  • جنسیت : پسر
  • اممم . اره دیگه! mehr32
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #8 : 14 اسفند 1400، 03:19 ب‌ظ »
الان دارید برنامتون رو با وی اس کد مقایسه می کنید ؟ یعنی این قدر جاسوس و اشغاله ؟ :D
نگفتم راز هاتون رو فاش کنید که  :o میگم چه کار هایی انجام میشه (مثل کم کردن نور و... ) و چقدر تاثیر داره ؟
دیگر به انجمن باز نخواهم گشت شاید جایی با این نام پیدام کنید اگه کاری با من دارید : qxc9966@protonmail.com

آفلاین abramazani

  • Jr. Member
  • *
  • ارسال: 80
  • جنسیت : پسر
  • برنامه نویس پایتون!!
    • سایت شخصی
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #9 : 14 اسفند 1400، 03:43 ب‌ظ »
الان دارید برنامتون رو با وی اس کد مقایسه می کنید ؟ یعنی این قدر جاسوس و اشغاله ؟ :D
نگفتم راز هاتون رو فاش کنید که  :o میگم چه کار هایی انجام میشه (مثل کم کردن نور و... ) و چقدر تاثیر داره ؟
دقت کنین گفتم مثلا ;D ;D  ](*,) ](*,)
اولش طرح این نرم افزار برای رفع یکی از مشکلات خودم بود
مثلا حواسم به میزان شارژ نبود و یه وقت نگاه می کردم میدیدم چند دقیقه شده 100 شده داره زور میزنه برسه به 101 نمیتونه
یا مثلا اینکه وسط کد زدن یه دفعگی برای اینکه شارژش تموم شده خاموش میشد لپ تاپ
این نرم افزار میاد و کنترل می کنه که شما یه میزان مشخص می کنین از اون بیشتر یا کمتر شد بهتون هشدار میده و مثلا میگه در این زمان چقدر افزایش داشته یا کاهش... نسبت میگیره به طور میانگین در یه دقیقه چقدر کم یا زیاد میشه شارژ
الان هم دارم روش کار می کنم قابلیت های بیشتری بهش اضافه کنم!
حرف زدن مهم نیست... کُدت را نشان بده!

آنلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #10 : 15 اسفند 1400، 07:18 ب‌ظ »
اخیرا کار مشابهی در ساخت بستهٔ استاندارد دبیان برای یک برنامه پایتون انجام دادم.
روال کلی اینه که فایل‌های لازم در پوشهٔ debian را دستی برای پروژه می‌سازیم.
فایل setup.py را به پروژه اضافه می‌کنیم.

دستور زیر deb را در پوشهٔ بالایی می‌سازد.
dpkg-buildpackage -us -uc -b
برای برنامهٔ شما هم کار مشابهی انجام دادم و بسته را می‌سازد ولی مشکلی اینجاست که وابستگی‌های بسته را نمی‌تواند نصب کند چون برخی از اون‌ها داخل repository های دبیان نیست برای نمونه pyglet.
در واقع بستهٔ زیر را نداریم تا به سادگی ازش استفاده کرد.
python3-pygletsudo apt install python3-pyglet
این‌ها را در حالت دستی با pip نصب می‌کنیم ولی اینکه در اینجا چطور این فرایند را به بسته دبیان می‌شود اضافه کرد را نمی‌دونم.

دوستان پیشنهادی دارند؟


برای مطالعه بیشتر لینک‌های زیر را ببینید.



https://salsa.debian.org/python-team/packages/python-uvicorn/-/tree/debian/master/
https://wiki.debian.org/Salsa
https://wiki.debian.org/Salsa/Doc
https://wiki.debian.org/Salsa/SSO
https://wiki.debian.org/Diaspora/Packaging
https://wiki.debian.org/Teams/PythonTeam?action=show&redirect=Teams%2FPythonModulesTeam
https://salsa.debian.org/python-team/tools/python-modules/blob/master/policy.rst
https://wiki.debian.org/Python/FAQ
https://wiki.debian.org/PackagingWithGit
https://honk.sigxcpu.org/piki/projects/git-buildpackage/
https://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.import.html
https://honk.sigxcpu.org/piki/development/debian_packages_in_git/
https://manpages.debian.org/jessie/dh-make/dh_make.8.en.html
https://www.debian.org/doc/manuals/maint-guide/dreq.en.html
https://www.debian.org/doc/packaging-manuals/python-policy/
https://manpages.debian.org/testing/dh-python/pybuild.1.en.html
https://wiki.debian.org/Python/Pybuild



آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #11 : 16 اسفند 1400، 12:03 ق‌ظ »
می‌تونی کد کاربراتور رو هم ببینی:
https://framagit.org/tractor/carburetor
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین abramazani

  • Jr. Member
  • *
  • ارسال: 80
  • جنسیت : پسر
  • برنامه نویس پایتون!!
    • سایت شخصی
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #12 : 16 اسفند 1400، 08:31 ب‌ظ »
برای برنامهٔ شما هم کار مشابهی انجام دادم و بسته را می‌سازد ولی مشکلی اینجاست که وابستگی‌های بسته را نمی‌تواند نصب کند چون برخی از اون‌ها داخل repository های دبیان نیست برای نمونه pyglet.
در واقع بستهٔ زیر را نداریم تا به سادگی ازش استفاده کرد.
python3-pygletsudo apt install python3-pyglet
این‌ها را در حالت دستی با pip نصب می‌کنیم ولی اینکه در اینجا چطور این فرایند را به بسته دبیان می‌شود اضافه کرد را نمی‌دونم.
خیلی ممنون از شما
میشه بگید چه کتابخونه هایی هستن که ارور دارن؟مثلا همین pyglet رو برای استفاده کردن از فونت گذاشتم... اگر کتابخونه ای که همین کار رو می کنه(فونت رو اضافه می کنه) میشناسید خب میشه جایگزین کرد!
حرف زدن مهم نیست... کُدت را نشان بده!

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #13 : 16 اسفند 1400، 10:17 ب‌ظ »
فقط من خیلی با این مباحث آشنایی ندارم اگه میشه یکم درباره این مباحث توضیح بدین یا اینکه مقالاتی(ترجیحا فارسی)بفرستین تا یکم در این باره اطلاعات کسب کنم
من تبدیل py به deb رو برای منتشر کردن این پروژه برای گنو/لینوکس میخواستم.اگه پیشنهاد دیگه ای دارین حتما بگین...
راستش فکر نکنم بتونید به زبان فارسی، چیزی پیدا کنید.
در مورد برنامه‌ای که دارید، خیلی از مدیریت‌های مربوط به باتری رو می‌تونید از طریق /sys/ انجام بدید. معمولا میشه با خوندن و نوشتن توی فایل‌های داخل دایرکتوری زیر، اینکار‌ها رو انجام داد. (مطمئن نیستم اسم دایرکتوری آخر رو درست نوشته باشم.)
/sys/class/power_supply/BAT_0/
میدونید که زکات علم نشر آن است

آنلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
پاسخ : ساخت خروجی قابل نصب از برنامه GUI
« پاسخ #14 : 17 اسفند 1400، 12:01 ق‌ظ »
برای برنامهٔ شما هم کار مشابهی انجام دادم و بسته را می‌سازد ولی مشکلی اینجاست که وابستگی‌های بسته را نمی‌تواند نصب کند چون برخی از اون‌ها داخل repository های دبیان نیست برای نمونه pyglet.
در واقع بستهٔ زیر را نداریم تا به سادگی ازش استفاده کرد.
python3-pygletsudo apt install python3-pyglet
این‌ها را در حالت دستی با pip نصب می‌کنیم ولی اینکه در اینجا چطور این فرایند را به بسته دبیان می‌شود اضافه کرد را نمی‌دونم.
خیلی ممنون از شما
میشه بگید چه کتابخونه هایی هستن که ارور دارن؟مثلا همین pyglet رو برای استفاده کردن از فونت گذاشتم... اگر کتابخونه ای که همین کار رو می کنه(فونت رو اضافه می کنه) میشناسید خب میشه جایگزین کرد!
من بسته‌ای که این کارو بکنه نمی‌شناسم.

یک راه ساخت بستهٔ استاندارد دبیان برای هر یک از اون وابستگی‌هاست که وقت گیره و ایده‌ای ندارم که به نتیجه می‌رسه یا نه.
لزوما همهٔ بسته‌های داخل pip معادل در مخزن دبیان ندارند و مشکل باید به روش دیگه‌ای حل بشه.