Packaging ও Deployment

📦 Python Packaging ও Deployment – সম্পূর্ণ গাইড

Python প্রজেক্ট শেষ করার পর সবচেয়ে গুরুত্বপূর্ণ ধাপ হলো Packaging এবং Deployment। এই গাইডে আমরা শিখবো কীভাবে একটি Python প্রজেক্ট প্যাকেজ বানিয়ে লোকাল বা সার্ভারে ডেপ্লয় করা যায়।

🔹 1. Python Packaging কী?

Python Packaging মানে হলো আপনার কোডকে এমনভাবে সাজানো, যাতে অন্য কেউ সহজে pip install করে ব্যবহার করতে পারে।

  • Code reuse করা যায়
  • Production-ready software তৈরি করা যায়
  • PyPI তে publish করা যায়

🔹 2. Basic Python Project Structure

myproject/
│── mypackage/
│   │── __init__.py
│   │── main.py
│── tests/
│── setup.py
│── README.md
│── requirements.txt
  

এখানে mypackage হলো মূল Python প্যাকেজ।

🔹 3. setup.py ফাইল তৈরি করা

from setuptools import setup, find_packages

setup(
    name="mypackage",
    version="1.0.0",
    packages=find_packages(),
    install_requires=[],
    author="Your Name",
    description="Simple Python Package Example"
)
  

এই ফাইল Python-কে বলে দেয় কীভাবে আপনার প্যাকেজ ইনস্টল হবে।

🔹 4. requirements.txt কী?

requirements.txt ফাইলে প্রজেক্টের dependency লেখা থাকে।

flask
requests
numpy
  

ইনস্টল কমান্ড:

pip install -r requirements.txt
# Output:
# Successfully installed flask requests numpy
  

🔹 5. Virtual Environment ব্যবহার

Virtual Environment প্রজেক্ট আলাদা করে রাখে।

python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

# Output:
# (venv)
  

🔹 6. Local Package Build করা

python setup.py sdist bdist_wheel

# Output:
# dist/mypackage-1.0.0.tar.gz
# dist/mypackage-1.0.0-py3-none-any.whl
  

🔹 7. PyPI তে Package Publish (Overview)

  • PyPI account তৈরি করুন
  • twine install করুন
  • Package upload করুন
pip install twine
twine upload dist/*

# Output:
# Upload successful
  

🔹 8. Python Deployment কী?

Deployment মানে আপনার Python app কে সার্ভারে রান করানো, যেন ব্যবহারকারী অ্যাক্সেস করতে পারে।

  • Web App (Flask / Django)
  • API Service
  • Automation Script

🔹 9. Flask App Deployment (Example)

from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "Hello from Production!"

if __name__ == "__main__":
    app.run()
  
python app.py
# Output:
# Running on http://127.0.0.1:5000
  

🔹 10. Production Tools

  • Gunicorn / Uvicorn
  • Nginx
  • Docker
  • Cloud (AWS, Render, Railway)

✅ সংক্ষেপে মনে রাখবেন

  • Packaging = Shareable Python Code
  • setup.py & requirements.txt গুরুত্বপূর্ণ
  • Virtualenv ব্যবহার করা উচিত
  • Deployment মানে Production-এ রান
👼 Quiz
/

লোড হচ্ছে...

Interview Questions:

1. Python Packaging কী?

Python Packaging হলো অ্যাপ্লিকেশনকে installable ও distributable ফরম্যাটে রূপান্তর করা।

2. requirements.txt এর কাজ কী?

requirements.txt ফাইলে প্রজেক্টের dependency তালিকা থাকে।

3. Python অ্যাপ ডিপ্লয় করার উপায় কী?

Gunicorn, Docker, VPS, Render বা Railway ব্যবহার করে Python অ্যাপ ডিপ্লয় করা যায়।