برنامه نویسی پایتون در لینوکس دبیان در گوشی

saalek110

Well-Known Member
برنامه نویسی پایتون در لینوکس دبیان در گوشی


در تاپیک زیر لینوکس بر ترموکس نصب کردیم. من دبیان نصب کردم.

شرحی بر نصب لینوکس بر ترموکس


آموزش پایتون از پایه

 
آخرین ویرایش:

saalek110

Well-Known Member
در ابونتو و دبیان:

کد:
 apt update
 apt install python3
 apt install python3-pip  # برای نصب pip (مدیر بسته پایتون)

کد:
python3 --version
اگر عددی نشان داد ، یعنی پایتون نصب است.
 
آخرین ویرایش:

saalek110

Well-Known Member
کد:
python3

print("hello")
وقتی می نویسم python یعنی بدون ۳ ، خطا می دهد. باید بنویسیم python3

با نوشتن python3 ، اول خط سه تا علامت بزرگتر داریم که نشانه محیط پایتون است.
کد:
>>>exit
در کد بالا سه تا بزرگتر را وول خط نوشتم تا نشان بدهم محیط پایتون چطوری نمایش داده می شود و برای تروج از محیط پایتون دستور exit را نوشته ام.
 

saalek110

Well-Known Member
ساختن فایل:
لازم نیست حتما وارد محیط پایتون شویم...
میشه فایل بسازیم و کدهای پایتون را داخلش بریزیم.

در دستور زیر ، نانو برای ما یک فایل می سازد.
کد:
nano test.py

و بعد ساخت فایل ، بلافاصله وارد فایل می شویم و با تاچ کف ایدیتور ، کد را paste می کنیم.یا کد را تایپ می کنیم...و
با زدن کنترل x و سپس زدن y و سپس با رویت نام فایل در پایین برنامه ، اینتر می کنیم. تا فایل save شود و از فایل بیرون خواهی رفت.
کد:
python3 test.py

با دستور بالا برنامه را جرا می کنیم.
 

saalek110

Well-Known Member
در تاپیک آموزش پاتون از پایه-لینک در پست اول - کدنویسی کردیم و اینجا دنبال آموزش کدنویسی پایتون نیستم.

کد:
 apt install python3-pil
کد بالا ، نصب Pillow از طریق apt (نسخه Debian)
برای من نصب شد.

کد:
# در Debian با بسته python3-pil نام ماژول متفاوت است
try:
    # سعی کن از PIL که با apt نصب شده استفاده کن
    from PIL import Image, ImageDraw
except ImportError:
    # اگر پیدا نشد، از نسخه جایگزین استفاده کن
    import Image
    import ImageDraw
    print("توجه: از نسخه قدیمی PIL استفاده می‌شود")

# بقیه کد مثل قبل...
width, height = 500, 400
image = Image.new("RGB", (width, height), (230, 240, 255))
draw = ImageDraw.Draw(image)

# رسم مربع
draw.rectangle([(100, 100), (300, 300)],
               fill=(255, 50, 50),
               outline=(0, 0, 0),
               width=3)

image.save("my_drawing.png")
print("✅ تصویر ساخته شد: my_drawing.png")

بزنامه بالا را اجرا کردم. رفتم در قسمت گرافیکی ، عکس ساخته شده بود.
 
آخرین ویرایش:

saalek110

Well-Known Member
کد:
 apt install python3-venv

دستور بالا ، نصب venv است.

کد:
python3 -m venv ~/my_python_env

کد بالا ، ایجاد محیط مجازی است.
حالا می توانیم هر چیزی نصب کنیم.

کد:
root@localhost:~# source ~/my_python_env/bin/activate
(my_python_env) root@localhost:~#
کد بالا فعال سازی این محیط است ، توجه کنید اول خط نوشته (my_python_env)
نصب pillow در محیط مجازی، محیط عادی نصب نشد:

کد:
pip install Pillow

در پست بعدی ، برنانه ای ساختیم برای ساخت عکس.


کارتون د. این محیط تمام شد بنویسید :
کد:
deactivate
 
آخرین ویرایش:

saalek110

Well-Known Member
کد:
```python
from PIL import Image, ImageDraw

# تنظیمات
width, height = 500, 400
bg_color = (230, 240, 255)
square_color = (255, 50, 50)

# ایجاد تصویر
image = Image.new("RGB", (width, height), bg_color)
draw = ImageDraw.Draw(image)

# رسم مربع
draw.rectangle([(100, 100), (300, 300)],
               fill=square_color,
               outline=(0, 0, 0),
               width=5)

# ذخیره تصویر
image.save("my_art.png")
print("✅ تصویر با موفقیت ساخته شد: my_art.png")
print("✅ برای مشاهده: feh my_art.png")
```
کد بالا برنامه نمونه است که فایل لکسی را می سازد.
 

saalek110

Well-Known Member
دستورات محیط مجازی:

Screenshot_۲۰۲۶-۰۲-۰۷_۱۹۱۴۲۹.jpg

کد:
pip list
Package Version
------- -------
pillow  12.1.0
pip     25.1.1
(my_python_env) root@localhost:~#

در بالا می بینید با لیست گیری میگه چی نصب شده.
 

saalek110

Well-Known Member
سالک:داخل فایل کد نویشه feh را احضار کرد؟

Deepseek:

خیر، کد Python نمی‌تواند به طور مستقیم دستور feh را در ترمینال اجرا کند. خط print("برای مشاهده: feh my_art.png") فقط یک پیام راهنما است که به شما می‌گوید چگونه تصویر را به صورت دستی ببینید.

اگر می‌خواهید برنامه به طور خودکار تصویر را پس از ساخت نمایش دهد، باید از یکی از روش‌های زیر استفاده کنید:

روش ۱: استفاده از subprocess (برای اجرای دستور ترمینال)

کد برنامه را به این شکل تغییر دهید:


from PIL import Image, ImageDraw
Python:
import subprocess

import sys



# تنظیمات

width, height = 500, 400

bg_color = (230, 240, 255)

square_color = (255, 50, 50)



# ایجاد تصویر

image = Image.new("RGB", (width, height), bg_color)

draw = ImageDraw.Draw(image)



# رسم مربع

draw.rectangle([(100, 100), (300, 300)],

               fill=square_color,

               outline=(0, 0, 0),

               width=5)



# ذخیره تصویر

filename = "my_art.png"

image.save(filename)

print(f"✅ تصویر با موفقیت ساخته شد: {filename}")



# تلاش برای نمایش خودکار تصویر

try:

    # روش ۱: اول سعی کن feh را اجرا کن

    subprocess.run(["feh", filename])

except FileNotFoundError:

    try:

        # روش ۲: اگر feh نصب نیست، با xdg-open امتحان کن (برای دسکتاپ)

        subprocess.run(["xdg-open", filename])

    except:

        # روش ۳: اگر هیچکدام کار نکرد، فقط پیام بده

        print("⚠️ نرم‌افزار نمایش تصویر یافت نشد.")

        print(" یا 'feh' نصب کنید: sudo apt install feh")

        print("   یا دستی تصویر را باز کنید.")

سالک: برنامه بالا ،در محیط ترمینالی feh را باز نکرد ولی در محیط گرافیکی آن را باز کرد.


️ روش ۲: استفاده از Image.show() (ساده‌تر اما محدودتر)

Python:
from PIL import Image, ImageDraw



# ... (کد قبلی برای ساخت تصویر) ...



image.save("my_art.png")

print("✅ تصویر با موفقیت ساخته شد")


# این تابع سعی می‌کند با برنامه پیش‌فرض سیستم تصویر را باز کند

image.show() # ممکن است در سرور بدون GUI کار نکند


مقایسه روش‌ها

روش نحوه کار نیازمندی‌ها مناسب برای
subprocess + feh مستقیماً feh را اجرا می‌کند نصب feh در سیستم سرورهای لینوکس (بدون دسکتاپ)
subprocess + xdg-open برنامه پیش‌فرض سیستم را می‌گشاید محیط دسکتاپ سیستم‌های دارای GUI
Image.show() تابع داخلی PIL بستگی به سیستم تست سریع
فقط ذخیره فقط فایل می‌سازد هیچ سرورهای بدون نمایشگر

پیشنهاد نهایی: کد ترکیبی

این کد همه روش‌ها را امتحان می‌کند:

Python:
from PIL import Image, ImageDraw

import subprocess

import os



# ... (کد ساخت تصویر) ...



filename = "my_art.png"

image.save(filename)

print(f"✅ تصویر ذخیره شد: {os.path.abspath(filename)}")


کدام روش را ترجیح می‌دهید؟

· اگر روی سرور بدون رابط گرافیکی هستید، روش feh بهترین است.
· اگر روی دسکتاپ هستید، xdg-open یا Image.show() بهتر کار می‌کند.
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا