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

کمک و پشتیبانی => انجمن عمومی => نویسنده: mr.amir138396 در 27 آبان 1399، 08:31 ب‌ظ

عنوان: با یک کلیک اسکریپت رو اجرا کنم ...
ارسال شده توسط: mr.amir138396 در 27 آبان 1399، 08:31 ب‌ظ
 
 سلام !
 
 دنبال نرم افزاری میگردم که مثل و*ی*ن*د*و*ز تا کلیک کنی روی ماژول پایتون ران شه نه اینکه ترمینال رو باز کنی و دو ساعت مسیر رو وارد کنی
عنوان: پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
ارسال شده توسط: M!lad در 27 آبان 1399، 09:35 ب‌ظ
راه‌های متفاوتی وجود داره.

- از اسکریپت پایتون خودتون یک فایل باینری ایجاد کنید.
- برای اسکریپت خودتون فایل Desktop ایجاد کنید.
- مدیرفایل خودتون رو تنظیم کنید تا اسکریپت‌های متنی رو بعد از دبل کلیک/اینتر اجرا کنند.
- راه‌های دیگر که احتمالا هست و من خاطرم نیست.
عنوان: پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
ارسال شده توسط: مرتضی . م در 27 آبان 1399، 09:42 ب‌ظ
اگه با chmod قابلیت اجرایی بهش بدید و اولش هم shebang رو بنویسید نمیشه؟
chmod +x a.pyو اول فایل پایتون هم این
#!/usr/bin/python3البته امتحان نکردم و مطمئن نیستم
عنوان: پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
ارسال شده توسط: mr.amir138396 در 27 آبان 1399، 11:44 ب‌ظ
راه‌های متفاوتی وجود داره.

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

 
 ممنون ولی لطفن یه کمی راهنمایی کنین که چی کار کنم مخصوصن گزینه 1 و 2
عنوان: پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
ارسال شده توسط: M!lad در 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 یک ترمینال باز خواهد شد و اسکریپت رو اجرا خواهد کرد.
عنوان: پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
ارسال شده توسط: Mr.CUPROG در 28 آبان 1399، 10:46 ق‌ظ
برای انجام این کار کافیه که این خطو به بالای برنامتون(اولین خط)‌اضافه کنید. پشتش هم چیزی ننویسید و اسپیس نزارید:
#!/usr/bin/env python بعد متغیر نیم رو برابر قرار بدید با '__main__':
__name__ = '__main__':
با chmod +x file.py
بهش اجازه ی اجرا بدید.
عنوان: پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
ارسال شده توسط: علیرضا. آ. در 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 در 28 آبان 1399، 11:44 ق‌ظ
البته تنظیم کردن !# و ... تنها در صورتی کار خواهد کرد که مدیرفایل به نحوی تنظیم شده باشه که اسکریپت‌های متنی رو اجرا کنه. برای مثال مدیر فایل Thunar اینکار رو انجام نمیده به صورت پیش‌فرض.
عنوان: پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
ارسال شده توسط: دانیال بهزادی در 28 آبان 1399، 09:26 ب‌ظ
دنبال نرم افزاری میگردم که مثل و*ی*ن*د*و*ز تا کلیک کنی روی ماژول پایتون ران شه نه اینکه ترمینال رو باز کنی و دو ساعت مسیر رو وارد کنی

خب این کار درستی نیست و می‌تونی کل مشکل امنیتی ایجاد کنه. نوشتن نام یک پرونده هم واقعاً کار سختی نیست!
عنوان: پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
ارسال شده توسط: مرتضی . م در 28 آبان 1399، 10:41 ب‌ظ
دنبال نرم افزاری میگردم که مثل و*ی*ن*د*و*ز تا کلیک کنی روی ماژول پایتون ران شه نه اینکه ترمینال رو باز کنی و دو ساعت مسیر رو وارد کنی

خب این کار درستی نیست و می‌تونی کل مشکل امنیتی ایجاد کنه.
چرا؟ چه مشکلی؟ یعنی یه بدافزار خودش رو جا بزنه مثلا؟
نقل‌قول
نوشتن نام یک پرونده هم واقعاً کار سختی نیست!
:)
عنوان: پاسخ : با یک کلیک اسکریپت رو اجرا کنم ...
ارسال شده توسط: Mr.CUPROG در 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 در 29 آبان 1399، 10:56 ق‌ظ
نمیخواد مسیر رو تایپ کنی. معمولا اگه فایل رو درگ کنی توی ترمینال خودش مسیرش رو مینویسه. تو فقط دستوراتت رو قبلش بنویس