تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

چگونه یک اسکریپت Python را در Ubuntu اجرا کنیم؟


۲۶ آذر ۱۴۰۴

اجرای یک اسکریپت Python در Ubuntu یک مهارت بنیادی برای توسعه‌دهندگان، مدیران سیستم و دانشمندان داده محسوب می‌شود. چه در حال خودکارسازی وظایف باشید، چه راه‌اندازی یک وب‌سرور را انجام دهید یا یک مدل یادگیری ماشین را train کنید، درک روش‌های صحیح اجرا، اهمیت حیاتی دارد. این مقاله یک مرور جامع از نحوه‌ی اجرای اسکریپت‌های Python در سرور Ubuntu ارائه می‌دهد.

راه اندازی اسکریپت Python در Ubuntu

در این مقاله، شما روش‌های اصلی اجرای اسکریپت را فراخواهید گرفت؛ از جمله استفاده‌ی مستقیم از دستور python3 و قابل‌ اجرا کردن اسکریپت‌ها با استفاده از یک خط shebang (خط shebang خط ابتدایی در اسکریپت‌های لینوکسی است که مشخص می‌کند فایل باید با کدام مفسر اجرا شود).

همچنین نحوه‌ی مدیریت نیازهای متفاوت پروژه با بهره‌گیری از محیط‌های مجازی، کار با سیستم‌هایی که هر دو نسخه‌ی Python 2 و Python 3 را دارند، و برطرف کردن خطاهای رایج نیز، پوشش داده می‌شود.

نکات کلیدی

  • مستقیم‌ترین روش برای اجرای یک اسکریپت Python در Ubuntu اجرای دستور python3 your_script.py است.
  • همیشه از یک محیط مجازی (venv) استفاده کنید تا وابستگی‌های پروژه را جدا نگه داشته و از ایجاد تداخل با پکیج‌های موجود در Python سیستم، جلوگیری کنید.
  • می‌توانید یک اسکریپت را طوری اجرا کنید که مانند یک native command عمل کند، با اضافه کردن یک خط #!/usr/bin/env python3 (خط shebang) و قابل‌اجرا کردن فایل با دستور chmod +x .
  • کتابخانه‌های اضافی مورد نیاز برای اسکریپت شما باید با استفاده از pip install در محیط مجازی فعال، نصب شوند.
  • برای وضوح و سازگاری، به‌صورت صریح از دستور python3 استفاده کنید، زیرا Python 2 منسوخ شده و در سیستم‌های مدرن Ubuntu نصب نیست.
  • خطاهای رایج مانند "Permission denied" یا "ModuleNotFoundError" را می‌توان به‌سرعت با تنظیم مجوزهای اجرا یا نصب بسته‌ها در محیط مناسب برطرف کرد.

پیش نیازها

برای دنبال کردن این آموزش، به موارد زیر نیاز خواهید داشت:

یک سرور با سیستم عامل Ubuntu به همراه یک کاربر non-root با دسترسی sudo و فایروال فعال. برای راهنمایی در مورد نحوه‌ی راه‌اندازی این موارد، به نحوه راه‌اندازی اولیه سرور مجازی با Ubuntu مراجعه کنید. لطفاً اطمینان حاصل کنید که از نسخه‌ی پشتیبانی‌شده Ubuntu استفاده می‌کنید.

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

قبل از شروع، در ترمینال Ubuntu دستورsudo apt-get update را اجرا کنید تا اطمینان حاصل شود سیستم شما آخرین نسخه‌ها و به‌روزرسانی‌های امنیتی نرم‌افزارهای موجود در repositoryهای سیستم را دارد.

این دستورالعمل‌ها برای جدیدترین نسخه‌های Ubuntu معتبر هستند: Ubuntu 24.04 , Ubuntu 22.04 و Ubuntu 20.04. اگر از نسخه‌ای برابر یا قدیمی‌تر از Ubuntu 18.04 استفاده می‌کنید، توصیه می‌کنیم سیستم خود را به نسخه‌ای جدیدتر ارتقا دهید، زیرا Ubuntu دیگر پشتیبانی از این نسخه‌ها را ارائه نمی‌دهد. این راهنما به شما در ارتقای نسخه Ubuntu کمک خواهد کرد.

اجرای اسکریپت Python در Ubuntu

برای اجرای یک اسکریپت Python در Ubuntu، مراحل زیر را دنبال خواهیم کرد:

  1. راه‌اندازی محیط Python
  2. ایجاد اسکریپت Python
  3. نصب بسته‌های مورد نیاز
  4. اجرای اسکریپت Python
  5. قابل‌اجرا کردن اسکریپت

گام ۱ – نحوه راه‌اندازی محیط Python

Ubuntu 24.04 به‌صورت پیش‌فرض Python 3 را همراه خود دارد. ترمینال را باز کرده و دستور زیر را برای بررسی نصب Python 3 اجرا کنید:

python3 --version

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

sudo apt install python3

سپس باید پکیج منیجر pip را روی سیستم خود نصب کنید:

sudo apt install python3-pip

گام ۲ – نحوه ایجاد اسکریپت Python

گام بعدی نوشتن کد Python است که می‌خواهید اجرا کنید. برای ایجاد یک اسکریپت جدید، به دایرکتوری مورد نظر خود بروید:

cd ~/path-to-your-script-directory

پس از ورود به دایرکتوری، باید یک فایل جدید ایجاد کنید. در ترمینال، دستور زیر را اجرا کنید:

nano demo_ai.py

این دستور یک ویرایشگر متن خالی باز می‌کند. در اینجا می‌توانید منطق برنامه‌نویسی خود را بنویسید یا کد زیر را کپی کنید:

from sklearn.tree import DecisionTreeClassifier
import numpy as np
import random

# Generate sample data
x = np.array([[i] for i in range(1, 21)])  # Numbers 1 to 20
y = np.array([i % 2 for i in range(1, 21)])  # 0 for even, 1 for odd

# Create and train the model
model = DecisionTreeClassifier()
model.fit(x, y)

# Function to predict if a number is odd or even
def predict_odd_even(number):
    prediction = model.predict([[number]])
    return "Odd" if prediction[0] == 1 else "Even"

if __name__ == "__main__":
    num = random.randint(0, 20)
    result = predict_odd_even(num)
    print(f"The number {num} is an {result} number.")

این اسکریپت یک classifier مبتنی بر درخت تصمیم با استفاده از کتابخانه scikit-learn ایجاد می‌کند (decision tree classifier یک مدل یادگیری ماشین در حوزه هوش مصنوعی است که با تقسیم داده‌ها بر اساس ویژگی‌ها، برای پیش‌بینی برچسب‌ها یا دسته‌بندی نمونه‌ها استفاده می‌شود).

این مدل با نمونه‌های غیرواقعی آموزش داده می‌شود تا اعداد فرد و زوج را تشخیص دهد. سپس بر اساس یادگیری خود، پیش‌بینی مربوط به عدد داده‌شده را انجام می‌دهد.

فایل را ذخیره کرده و از ویرایشگر متن خارج شوید.

گام ۳ – نحوه نصب پکیج های مورد نیاز

در این گام، شما پکیج‌هایی را که در اسکریپت بالا استفاده کرده‌اید، نصب خواهید کرد.

اولین پکیجی که باید نصب کنید، NumPy است. شما از این کتابخانه برای ایجاد یک دیتاست (dataset) جهت آموزش مدل یادگیری ماشین استفاده کرده‌اید.

برای نصب و استفاده موفقیت‌آمیز از numpy، باید یک محیط مجازی (venv) ایجاد کنید که پکیج‌های Python شما را از محیط سیستم جدا کند. این کار مهم است چون وابستگی‌های مورد نیاز پروژه‌های مختلف را جدا نگه می‌دارد و از بروز تداخل احتمالی بین نسخه‌های پکیج‌ها جلوگیری می‌کند.

ابتدا virtualenv را با اجرای دستور زیر نصب کنید:

sudo apt install python3-venv

حال، از این ابزار استفاده کنید تا یک محیط مجازی (venv) در داخل دایرکتوری کاری خود ایجاد کنید.

python3 -m venv python-env

گام بعدی فعال‌سازی این محیط مجازی (venv) با اجرای اسکریپت activate است.

source python-env/bin/activate

با اجرای دستور فوق، مشاهده خواهید کرد که در ابتدای ترمینال نام محیط مجازی (venv) شما قرار گرفته است، به این شکل:

Output
(venv) ubuntu@user:

حال، پکیج‌های مورد نیاز را با اجرای دستور زیر نصب کنید:

pip install scikit-learn numpy

ماژول random بخشی از کتابخانه استاندارد Python است، بنابراین نیازی به نصب جداگانه ندارد. این ماژول همراه با Python ارائه می‌شود و می‌توان مستقیماً بدون هیچ نصب اضافی از آن استفاده کرد.

گام ۴ – نحوه اجرای اسکریپت Python

اکنون که تمام پکیج‌های مورد نیاز نصب شده‌اند، می‌توانید اسکریپت Python خود را با اجرای دستور زیر در داخل دایرکتوری فعلی اجرا کنید:

python3 demo_ai.py

پس از اجرای موفقیت‌آمیز، خروجی مورد انتظار را مشاهده خواهید کرد.

Output
(venv) ubuntu@user:~/scripts/python demo_ai.py
The number 5 is an Odd number.
(venv) ubuntu@user:~/scripts/python demo_ai.py
The number 17 is an Odd number.

گام ۵ – نحوه قابل اجرا کردن اسکریپت [اختیاری]

قابل‌اجرا کردن اسکریپت این امکان را می‌دهد که بتوانید آن را مستقیماً اجرا کنید، بدون اینکه نیاز باشد به‌صورت صریح دستور python3 را تایپ کنید. این کار اجرای اسکریپت را سریع‌تر و راحت‌تر می‌کند.

اسکریپت Python خود را با استفاده از یک ادیتور باز کنید.

nano demo_ai.py

در ابتدای فایل، یک خط shebang، یعنی#! اضافه کنید که به سیستم می‌گوید هنگام اجرای اسکریپت از کدام مفسر Python استفاده کند. خط زیر را به‌عنوان اولین خط اسکریپت خود اضافه کنید:

#!/usr/bin/env python3

فایل را ذخیره کرده و ببندید.

حال، این اسکریپت را قابل‌اجرا کنید تا بتوان آن را مانند هر برنامه یا فرمان دیگری در ترمینال اجرا کرد.

chmod +x demo_ai.py

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

./demo_ai.py

نحوه مدیریت همزمان محیط های Python 2 و Python 3

برای مدیریت موثر همزمان Python 2 و Python 3 روی یک سیستم Ubuntu، باید از دستورات صریح برای اسکریپت‌های ساده و محیط‌های مجازی (venv) اختصاصی برای پروژه‌ها استفاده کنید. این روش از بروز تداخل نسخه‌ها و وابستگی‌ها جلوگیری می‌کند.

نکته مهم: Python 2 منسوخ شده و از سال ۲۰۲۰ دیگر پشتیبانی نمی‌شود. این نسخه هیچ به‌روزرسانی امنیتی دریافت نمی‌کند. همیشه، برای پروژه‌های جدید از Python 3 و محیط مجازی (venv) استفاده کنید. محیط‌های Python 2 تنها برای نگهداری برنامه‌های قدیمی (legacy) که امکان ارتقا ندارند، کاربرد دارند.

نحوه شناسایی مفسرهای سیستم (System Interpreter)

ابتدا بررسی کنید که سیستم شما چه نسخه‌های Python را نصب کرده است و دستور پیش‌فرض python به کدام نسخه اشاره می‌کند.

برای مشاهده نسخه‌های موجود، این دستورات را اجرا کنید:

# Check for Python 3 
python3 --version

# Check for Python 2 
python2 --version

اگر دستور python2 خطای "command not found" بدهد، به این معنی است که تنها Python 3 روی سیستم نصب شده است.

نحوه اجرای صریح اسکریپت ها

ساده‌ترین روش برای مشخص کردن نسخه Python که اسکریپت شما را اجرا می‌کند، صریحاً فراخوانی کردن آن نسخه است.

  • برای اجرای یک اسکریپت با Python 3:
python3 your_script_name.py
  • برای اجرای یک اسکریپت با Python 2:
python2 your_script_name.py

نحوه مدیریت پروژه ها با محیط های مجازی (بهترین روش)

یک محیط مجازی، پوشه‌ای ایزوله است که شامل یک نسخه مشخص از Python و پکیج‌های مربوط به آن می‌باشد. این روش، یک روش استاندارد و حرفه‌ای است، زیرا از بروز “dependency hell” (جهنم وابستگی‌ها) جلوگیری می‌کند، حالتی که در آن پروژه‌های مختلف به نسخه‌های متضاد از یک پکیج نیاز دارند.

نحوه ایجاد یک محیط Python 3 با استفاده از venv

ماژول venv به‌صورت داخلی در Python 3 تعبیه شده و استاندارد ایجاد محیط‌های مجازی محسوب می‌شود.

ابتدا venv را نصب کنید (در صورت نیاز):

sudo apt update
sudo apt install python3-venv

سپس، محیط مجازی را ایجاد کرده و فعال کنید:

# Create the environment folder
python3 -m venv my-project-env

# Activate it
source my-project-env/bin/activate

پس از فعال‌سازی، ترمینال تغییر خواهد کرد و دستورهای pythonو pip در این session ترمینال به‌صورت خودکار از مفسر Python 3 و پکیج منیجر آن استفاده خواهند کرد.

نحوه ایجاد یک محیط Python 3 با استفاده از virtualenv

برای پروژه‌های قدیمی (legacy)، به پکیج virtualenv نیاز خواهید داشت.

  • ابتدا پیش‌نیازها را نصب کنید:
sudo apt install python3 python3-pip virtualenv

نکته: در سیستم‌عامل اوبونتو نسخه‌ی 20.04 و بالاتر، در صورتی که پایتون ۲ از طریق ابزار apt در دسترس نباشد، ممکن است لازم باشد repository universe را فعال کنید یا پایتون ۲ را به‌صورت دستی از سورس دانلود و نصب نمایید.

  • سپس virtualenv را ایجاد کرده و فعال کنید:
# Create the environment, specifying the Python 2 interpreter path
virtualenv -p /usr/bin/python2 my-legacy-env

# Activate it
source my-legacy-env/bin/activate

پس از فعال‌سازی، دستورهای python و pip اکنون به Python 2 سیستم اشاره خواهند کرد.

برای خروج از هر محیط و بازگشت به shell عادی، کافی است دستور deactivate را اجرا کنید.

درک خطوط Shebang

خط shebang اولین خط یک اسکریپت است که به سیستم عامل می‌گوید هنگام اجرای مستقیم اسکریپت به‌عنوان یک فایل قابل‌اجرا، از کدام مفسر استفاده کند.

  • برای Python 3:
#!/usr/bin/env python3
  • برای Python 2:
#!/usr/bin/env python2

برای اینکه این کار عملی شود، باید اسکریپت را قابل‌اجرا کنید:

chmod +x your_script.py

سپس می‌توانید آن را مستقیماً اجرا کنید و سیستم، خط shebang را رعایت خواهد کرد:

./your_script.py

و اگر می‌خواهید اسکریپت خود را به‌صورت سراسری (از هر دایرکتوری) اجرا کنید، آن را به دایرکتوری‌ای در PATH مانند /usr/local/bin منتقل کنید.

رفع اشکال (Troubleshooting): خطاهای رایج و راه حل ها

برخوردن به خطا یک بخش طبیعی از فرآیند توسعه است. در ادامه، به برخی از رایج‌ترین خطاهایی که ممکن است در ترمینال مشاهده کنید و روش‌های رفع آن‌ها، پرداخته شده است. این خطاها معمولاً مربوط به مجوزها (permissions)، مسیر فایل‌ها یا نصب Python هستند.

۱. خطای Permission Denied (دسترسی غیرمجاز)

bash: ./your_script.py: Permission denied

علت: شما در حال تلاش برای اجرای مستقیم اسکریپت (./your_script.py) هستید، اما فایل مجوز اجرای لازم را ندارد. سیستم عامل به دلایل امنیتی مانع اجرای آن می‌شود.

راه‌حل: از دستور chmod (change mode) برای اضافه کردن مجوز اجرا (execute permission) استفاده کنید.

chmod +x your_script.py

حال می‌توانید دوباره اسکریپت را با دستور ./your_script.py اجرا کنید.

۲. خطای Command Not Found (دستور پیدا نشد)

bash: python: command not found

یا:

bash: python3: command not found

علت: Ubuntu نمی‌تواند مفسر python یا python3 را پیدا کند. این به این معناست که Python یا نصب نشده است، یا در PATH سیستم قرار ندارد (لیستی از دایرکتوری‌ها که شل برای پیدا کردن دستورات به آن‌ها نگاه می‌کند).

راه‌حل: Python 3 را نصب کنید. این نسخه استاندارد برای تمام توسعه‌های مدرن است.

sudo apt update
sudo apt install python3

برای راحتی، می‌توانید یک پکیج نصب کنید که دستور python را به python3 ارجاع دهد:

sudo apt install python-is-python3

۳. خطای No Such File or Directory (فایل یا دایرکتوری وجود ندارد)

python3: can't open file 'your_script.py': [Errno 2] No such file or directory

علت: شما در حال تلاش برای اجرای اسکریپتی هستید که در دایرکتوری فعلی وجود ندارد یا در نام فایل، اشتباه تایپی رخ داده است.

راه‌حل:

  • ابتدا با استفاده از دستور pwd (print working directory) بررسی کنید که در دایرکتوری صحیح قرار دارید.
  • سپس با دستور ls فایل‌های موجود در دایرکتوری فعلی را فهرست کنید تا املای دقیق نام اسکریپت را بررسی کنید.
  • اگر در مکان اشتباه هستید، از دستور cd برای رفتن به دایرکتوری صحیح استفاده کنید.

سوالات متداول

۱. چگونه یک فایل .py را در Ubuntu اجرا کنم؟

ساده‌ترین روش برای اجرای یک فایل Python در ترمینال Ubuntu، استفاده از دستور python3 است. برای این کار:

  • ترمینال خود را باز کرده و با استفاده از دستور cd به دایرکتوری حاوی فایل بروید.
  • سپس اسکریپت را با تایپ دستور زیر اجرا کنید:
python3 your_script_name.py

۲. آیا لازم است پایتون را روی اوبونتو نصب کنم؟

احتمالاً نه. نسخه‌های مدرن اوبونتو (۲۰.۰۴ و جدیدتر) معمولاً Python 3 را به‌صورت پیش‌فرض نصب دارند، چون بسیاری از ابزارهای اصلی سیستم به آن وابسته‌اند.

می‌توانید این موضوع را با باز کردن ترمینال و اجرای دستور python3 --version بررسی کنید. تنها زمانی نیاز به نصب دستی پایتون دارید که از یک نسخهٔ خیلی قدیمی Ubuntu استفاده کنید یا Python به‌صورت دستی از روی سیستم حذف شده باشد.

۳. تفاوت اجرای python script.py و python3 script.py در اوبونتو چیست؟

دستور python (اگر نصب شده باشد) ممکن است به Python 2.x اشاره کند یا در نسخه‌های جدید اوبونتو اصلاً وجود نداشته باشد.

python3 به‌صورت صریح Python 3.x را اجرا می‌کند. برای شفافیت و سازگاری، به‌ویژه با توجه به منسوخ شدن Python 2، توصیه می‌شود همیشه از python3 استفاده کنید.

نتیجه گیری

در این مقاله، شما یاد گرفتید چگونه اسکریپت‌های Python را به‌طور موفقیت‌آمیز در سیستم Ubuntu اجرا کنید. ما تمامی مراحل را بررسی کردیم؛ از دستور ساده python3 script.py گرفته تا قابل‌اجرا کردن اسکریپت‌ها با استفاده از shebang و chmod.

همچنین یاد گرفتید چگونه وابستگی‌های پروژه را به‌صورت حرفه‌ای با محیط‌های مجازی مدیریت کنید، سیستم‌هایی با چند نسخه Python را کنترل کنید و خطاهای رایج را رفع نمایید. با این مهارت‌ها، اکنون آماده‌اید تا کدهای Python را به‌طور مؤثر برای هر پروژه‌ای (از اتوماسیون ساده تا برنامه‌های پیچیده) اجرا کنید.

به اشتراک بگذارید