انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: mr.amir138396 در 27 آبان 1399، 08:31 بظ
-
سلام !
دنبال نرم افزاری میگردم که مثل و*ی*ن*د*و*ز تا کلیک کنی روی ماژول پایتون ران شه نه اینکه ترمینال رو باز کنی و دو ساعت مسیر رو وارد کنی
-
راههای متفاوتی وجود داره.
- از اسکریپت پایتون خودتون یک فایل باینری ایجاد کنید.
- برای اسکریپت خودتون فایل Desktop ایجاد کنید.
- مدیرفایل خودتون رو تنظیم کنید تا اسکریپتهای متنی رو بعد از دبل کلیک/اینتر اجرا کنند.
- راههای دیگر که احتمالا هست و من خاطرم نیست.
-
اگه با chmod قابلیت اجرایی بهش بدید و اولش هم shebang رو بنویسید نمیشه؟
chmod +x a.py
و اول فایل پایتون هم این
#!/usr/bin/python3
البته امتحان نکردم و مطمئن نیستم
-
راههای متفاوتی وجود داره.
- از اسکریپت پایتون خودتون یک فایل باینری ایجاد کنید.
- برای اسکریپت خودتون فایل Desktop ایجاد کنید.
- مدیرفایل خودتون رو تنظیم کنید تا اسکریپتهای متنی رو بعد از دبل کلیک/اینتر اجرا کنند.
- راههای دیگر که احتمالا هست و من خاطرم نیست.
ممنون ولی لطفن یه کمی راهنمایی کنین که چی کار کنم مخصوصن گزینه 1 و 2
-
برای گزینه یک درباره 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 یک ترمینال باز خواهد شد و اسکریپت رو اجرا خواهد کرد.
-
برای انجام این کار کافیه که این خطو به بالای برنامتون(اولین خط)اضافه کنید. پشتش هم چیزی ننویسید و اسپیس نزارید:
#!/usr/bin/env python
بعد متغیر نیم رو برابر قرار بدید با '__main__':
__name__ = '__main__':
با chmod +x file.p
y
بهش اجازه ی اجرا بدید.
-
برای انجام این کار کافیه که این خطو به بالای برنامتون(اولین خط)اضافه کنید. پشتش هم چیزی ننویسید و اسپیس نزارید:
#!/usr/bin/env python
بعد متغیر نیم رو برابر قرار بدید با '__main__':
__name__ == '__main__':
با chmod +x file.p
y
بهش اجازه ی اجرا بدید.
این خط:
__name__ == '__main__':
اشتباهه.
عمل گر == برای بررسی مقدار و عملگر = برای دادن مقدار استفاده میشه.
درواقع باید یک if بنویسید که بررسی کنه برنامه توسط import اجرا شده یا با همون رایت کلیک اجرا شده که این یک نمونه برنامست :
def main():
#Logic goes here
print("Program started from terminal")
if __name__ == "__main__": main()
-
البته تنظیم کردن !# و ... تنها در صورتی کار خواهد کرد که مدیرفایل به نحوی تنظیم شده باشه که اسکریپتهای متنی رو اجرا کنه. برای مثال مدیر فایل Thunar اینکار رو انجام نمیده به صورت پیشفرض.
-
دنبال نرم افزاری میگردم که مثل و*ی*ن*د*و*ز تا کلیک کنی روی ماژول پایتون ران شه نه اینکه ترمینال رو باز کنی و دو ساعت مسیر رو وارد کنی
خب این کار درستی نیست و میتونی کل مشکل امنیتی ایجاد کنه. نوشتن نام یک پرونده هم واقعاً کار سختی نیست!
-
دنبال نرم افزاری میگردم که مثل و*ی*ن*د*و*ز تا کلیک کنی روی ماژول پایتون ران شه نه اینکه ترمینال رو باز کنی و دو ساعت مسیر رو وارد کنی
خب این کار درستی نیست و میتونی کل مشکل امنیتی ایجاد کنه.
چرا؟ چه مشکلی؟ یعنی یه بدافزار خودش رو جا بزنه مثلا؟
نوشتن نام یک پرونده هم واقعاً کار سختی نیست!
:)
-
برای انجام این کار کافیه که این خطو به بالای برنامتون(اولین خط)اضافه کنید. پشتش هم چیزی ننویسید و اسپیس نزارید:
#!/usr/bin/env python
بعد متغیر نیم رو برابر قرار بدید با '__main__':
__name__ == '__main__':
با chmod +x file.p
y
بهش اجازه ی اجرا بدید.
این خط:
__name__ == '__main__':
اشتباهه.
عمل گر == برای بررسی مقدار و عملگر = برای دادن مقدار استفاده میشه.
درواقع باید یک if بنویسید که بررسی کنه برنامه توسط import اجرا شده یا با همون رایت کلیک اجرا شده که این یک نمونه برنامست :
def main():
#Logic goes here
print("Program started from terminal")
if __name__ == "__main__": main()
استباه تایپی بود
-
نمیخواد مسیر رو تایپ کنی. معمولا اگه فایل رو درگ کنی توی ترمینال خودش مسیرش رو مینویسه. تو فقط دستوراتت رو قبلش بنویس