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

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

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

نویسنده موضوع: با یک کلیک اسکریپت رو اجرا کنم ...  (دفعات بازدید: 989 بار)

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

آفلاین mr.amir138396

  • Sr. Member
  • *
  • ارسال: 459
  • جنسیت : پسر
  • شاگرد همیشه مشتاق یادگیری
با یک کلیک اسکریپت رو اجرا کنم ...
« : 27 آبان 1399، 08:31 ب‌ظ »
 
 سلام !
 
 دنبال نرم افزاری میگردم که مثل و*ی*ن*د*و*ز تا کلیک کنی روی ماژول پایتون ران شه نه اینکه ترمینال رو باز کنی و دو ساعت مسیر رو وارد کنی
با احترام ! امیرحسین عباسی فاروجی . (;

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #1 : 27 آبان 1399، 09:35 ب‌ظ »
راه‌های متفاوتی وجود داره.

- از اسکریپت پایتون خودتون یک فایل باینری ایجاد کنید.
- برای اسکریپت خودتون فایل Desktop ایجاد کنید.
- مدیرفایل خودتون رو تنظیم کنید تا اسکریپت‌های متنی رو بعد از دبل کلیک/اینتر اجرا کنند.
- راه‌های دیگر که احتمالا هست و من خاطرم نیست.
..I feel no fault for the fault I feel..

آفلاین مرتضی . م

  • High Hero Member
  • *
  • ارسال: 1116
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #2 : 27 آبان 1399، 09:42 ب‌ظ »
اگه با chmod قابلیت اجرایی بهش بدید و اولش هم shebang رو بنویسید نمیشه؟
chmod +x a.pyو اول فایل پایتون هم این
#!/usr/bin/python3البته امتحان نکردم و مطمئن نیستم

آفلاین mr.amir138396

  • Sr. Member
  • *
  • ارسال: 459
  • جنسیت : پسر
  • شاگرد همیشه مشتاق یادگیری
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #3 : 27 آبان 1399، 11:44 ب‌ظ »
راه‌های متفاوتی وجود داره.

- از اسکریپت پایتون خودتون یک فایل باینری ایجاد کنید.
- برای اسکریپت خودتون فایل Desktop ایجاد کنید.
- مدیرفایل خودتون رو تنظیم کنید تا اسکریپت‌های متنی رو بعد از دبل کلیک/اینتر اجرا کنند.
- راه‌های دیگر که احتمالا هست و من خاطرم نیست.

 
 ممنون ولی لطفن یه کمی راهنمایی کنین که چی کار کنم مخصوصن گزینه 1 و 2
« آخرین ویرایش: 27 آبان 1399، 11:54 ب‌ظ توسط mr.amir138396 »
با احترام ! امیرحسین عباسی فاروجی . (;

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #4 : 28 آبان 1399، 12:33 ق‌ظ »
برای گزینه یک درباره PyInstaller جستجو کنید.

برای گزینه دوم. می‌تونید یک فایل desktop برای مثال با نام app.desktop ایجاد کنید حاوی اطلاعات زیر.

[Desktop Entry]
Name=My Script
GenericName=Runs something fun
Comment=Comment
Path=$HOME
Exec=./script.py
Icon=python
Type=Application
Terminal=true
Categories=Terminal

فرض بر این هست که اسکریپت شما با نام script.py در HOME قرار داره. اسکریپ می‌تونه یک محتوا مثل کد زیر داشته باشه:

#!/usr/bin/python3
print('hi')
input()

پس از تنظیم سطح دسترسی اجرا. با کلیک روی فایل desktop یک ترمینال باز خواهد شد و اسکریپت رو اجرا خواهد کرد.
..I feel no fault for the fault I feel..

آفلاین Mr.CUPROG

  • Jr. Member
  • *
  • ارسال: 62
  • جنسیت : پسر
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #5 : 28 آبان 1399، 10:46 ق‌ظ »
برای انجام این کار کافیه که این خطو به بالای برنامتون(اولین خط)‌اضافه کنید. پشتش هم چیزی ننویسید و اسپیس نزارید:
#!/usr/bin/env python بعد متغیر نیم رو برابر قرار بدید با '__main__':
__name__ = '__main__':
با chmod +x file.py
بهش اجازه ی اجرا بدید.
« آخرین ویرایش: 29 آبان 1399، 01:47 ق‌ظ توسط Mr.CUPROG »

آفلاین علیرضا. آ.

  • Sr. Member
  • *
  • ارسال: 333
  • جنسیت : پسر
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #6 : 28 آبان 1399، 11:30 ق‌ظ »
برای انجام این کار کافیه که این خطو به بالای برنامتون(اولین خط)‌اضافه کنید. پشتش هم چیزی ننویسید و اسپیس نزارید:
#!/usr/bin/env python بعد متغیر نیم رو برابر قرار بدید با '__main__':
__name__ == '__main__':
با chmod +x file.py
بهش اجازه ی اجرا بدید.
این خط:
__name__ == '__main__':
اشتباهه.
عمل گر == برای بررسی مقدار و عملگر = برای دادن مقدار استفاده میشه.
 درواقع باید یک if بنویسید که بررسی کنه برنامه توسط import اجرا شده یا با همون رایت کلیک اجرا شده که این یک نمونه برنامست :
def main():
    #Logic goes here
    print("Program started from terminal")
   
if __name__ == "__main__": main()

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #7 : 28 آبان 1399، 11:44 ق‌ظ »
البته تنظیم کردن !# و ... تنها در صورتی کار خواهد کرد که مدیرفایل به نحوی تنظیم شده باشه که اسکریپت‌های متنی رو اجرا کنه. برای مثال مدیر فایل Thunar اینکار رو انجام نمیده به صورت پیش‌فرض.
..I feel no fault for the fault I feel..

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

  • ناظر انجمن
  • *
  • ارسال: 19708
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #8 : 28 آبان 1399، 09:26 ب‌ظ »
دنبال نرم افزاری میگردم که مثل و*ی*ن*د*و*ز تا کلیک کنی روی ماژول پایتون ران شه نه اینکه ترمینال رو باز کنی و دو ساعت مسیر رو وارد کنی

خب این کار درستی نیست و می‌تونی کل مشکل امنیتی ایجاد کنه. نوشتن نام یک پرونده هم واقعاً کار سختی نیست!
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین مرتضی . م

  • High Hero Member
  • *
  • ارسال: 1116
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #9 : 28 آبان 1399، 10:41 ب‌ظ »
دنبال نرم افزاری میگردم که مثل و*ی*ن*د*و*ز تا کلیک کنی روی ماژول پایتون ران شه نه اینکه ترمینال رو باز کنی و دو ساعت مسیر رو وارد کنی

خب این کار درستی نیست و می‌تونی کل مشکل امنیتی ایجاد کنه.
چرا؟ چه مشکلی؟ یعنی یه بدافزار خودش رو جا بزنه مثلا؟
نقل‌قول
نوشتن نام یک پرونده هم واقعاً کار سختی نیست!
:)

آفلاین Mr.CUPROG

  • Jr. Member
  • *
  • ارسال: 62
  • جنسیت : پسر
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #10 : 28 آبان 1399، 11:17 ب‌ظ »
برای انجام این کار کافیه که این خطو به بالای برنامتون(اولین خط)‌اضافه کنید. پشتش هم چیزی ننویسید و اسپیس نزارید:
#!/usr/bin/env python بعد متغیر نیم رو برابر قرار بدید با '__main__':
__name__ == '__main__':
با chmod +x file.py
بهش اجازه ی اجرا بدید.
این خط:
__name__ == '__main__':
اشتباهه.
عمل گر == برای بررسی مقدار و عملگر = برای دادن مقدار استفاده میشه.
 درواقع باید یک if بنویسید که بررسی کنه برنامه توسط import اجرا شده یا با همون رایت کلیک اجرا شده که این یک نمونه برنامست :
def main():
    #Logic goes here
    print("Program started from terminal")
   
if __name__ == "__main__": main()
استباه تایپی بود

آفلاین HusseinDTS

  • Sr. Member
  • *
  • ارسال: 375
  • جنسیت : پسر
    • کام آرت
پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
« پاسخ #11 : 29 آبان 1399، 10:56 ق‌ظ »
نمیخواد مسیر رو تایپ کنی. معمولا اگه فایل رو درگ کنی توی ترمینال خودش مسیرش رو مینویسه. تو فقط دستوراتت رو قبلش بنویس