پروژه پایتون قابل نگهداری را بسازید – انجمن DEV

تصور کنید چندین ماه پیش پروژه شخصی پایتون دارید. شما سعی می کنید دوباره آن را روی کامپیوتر خود اجرا کنید اما کار نمی کند. شما با خطاهایی مانند عدم وابستگی، نسخه پایتون ناسازگار و غیره مواجه می شوید. حل این مشکل یک روز طول می کشد. تصور کنید اگر این در کار روزانه شما باشد. پروژه پایتون شما باید روی سرور تولید و شما کار کند
کامپیوتر کالج هم همینطور مواجهه مکرر با این موضوع ثمربخش نیست.
در این وبلاگ به شما نشان خواهم داد که چگونه این مشکل را برطرف کنید تا پروژه پایتون خود را قابل نگهداری کنید. استفاده از بهترین روش معمول پروژه پایتون.
1. نسخه پایتون خود را تعریف کنید
هر وابستگی پایتون نیاز به نسخه پایتون متفاوتی دارد. به عنوان مثال پایتون 2.7 (چه کسانی هنوز از پایتون 2.7 در سال 2024 استفاده می کنند؟) فقط می تواند با نسخه 1.8 جنگو کار کند. Fastapi حداقل به پایتون 3.5 نیاز دارد زیرا ویژگی typehint برای اولین بار در پایتون 3.5 معرفی شد.
از کجا باید نسخه پایتون را تعریف کنم؟ من شخصا آن را در README.md قرار دادم. من بخشی به نام نیاز ایجاد می کنم سپس آن را روی آنها قرار می دهم. می توانید در این مخزن github https://github.com/BimaAdi/Make-Maintainable-Python-Project را ببینید.
2. استفاده از محیط مجازی
به طور پیش فرض در صورت استفاده از پیپ pip install {some package}
در سطح جهانی ذخیره می شود و برای تمام پروژه های شما در دسترس خواهد بود. مشکل این نیست که تمام پروژه شما از همه وابستگی ها استفاده می کند. به عنوان مثال شما چندین پروژه دارید، یکی در مورد یادگیری ماشین و دیگری در مورد توسعه باطن. پروژه یادگیری ماشینی از برخی بسته های مرتبط با یادگیری ماشین مانند numpy، پانداها، scikit Learn و غیره استفاده می کند در حالی که پروژه Backend از برخی بسته های مرتبط با باطن مانند جنگو استفاده می کند. پروژه یادگیری ماشین شما به جنگو نیاز ندارد و همچنین پروژه باطن شما به یادگیری numpy و scikit نیاز ندارد. با استفاده از محیط مجازی شما
وابستگی های محصور شده برای هر پروژه
برای ایجاد محیط مجازی در پوشه پروژه خود دستور اجرا کنید:
python -m venv env
در پوشه پروژه خود یک پوشه env خواهید دید. این پوشه مفسر پایتون و وابستگی های پایتون شما را ذخیره می کند. برای استفاده از محیط تازه ایجاد شده خود می توانید از دستور زیر استفاده کنید:
لینوکس و ماکو (bash یا zsh)
source env/bin/activate
ویندوز (command promt)
env\Scripts\activate.bat
ویندوز (پاورشل)
env\Scripts\activate.ps1
پس از اجرای آن دستور متوجه می شوید که ترمینال/command promt/powershell شما (env) در سمت چپ دارد.
این نشان می دهد که شما دیگر از مفسر جهانی پایتون خود استفاده نمی کنید، اما از مفسر پایتون در پوشه env خود استفاده می کنید. اگر اجرا کنید pip list
همچنین متوجه شده اید که هیچ گونه وابستگی به بسته ندارید.
وقتی اجرا می کنید pip install {some package}
در حالی که (env) دارید، آن را در پوشه env خود ذخیره خواهید کرد. تلاش كردن pip install Faker pandas
سپس pip list
خواهید دید که روی پوشه env شما نصب شده است.
برای استفاده از مفسر جهانی پایتون من. می توانید ترمینال/کامند promt/powershell جدید ایجاد کنید یا با استفاده از دستور محیط را غیرفعال کنید. deactivate
. پوشه env را به مخزن git فشار ندهید. حتماً پوشه env را به gitignore. خود اضافه کنید.
3. به وابستگی های پروژه خود با استفاده از request.txt توجه کنید
وقتی پروژه شما بزرگتر می شود، به وابستگی های بیشتری نیاز دارید. نصب همه وابستگی ها به صورت دستی موثر نیست. همچنین باید تعریف کنید که وابستگی پایتون شما به چه نسخه ای نیاز دارد. برای حل این مشکل می توانیم از requires.txt استفاده کنیم. requires.txt فقط یک فایل txt است که وابستگی های پایتون شما را ذخیره می کند.
برای تولید آن فایل در ترمینال در حالی که از محیط مجازی استفاده می کنید دستور را اجرا کنید pip freeze > requirements.txt
. pip freeze
تمام وابستگی ها و نسخه آن را در محیط مجازی شما در ترمینال چاپ می کند > requirements.txt
برای قرار دادن خروجی در requirement.txt.
پس از اجرای آن فایل متوجه فایل جدید requires.txt می شوید. برای نصب مجدد وابستگی های پایتون فقط به دستور run نیاز دارید pip install -r requirements.txt
. اطمینان حاصل کنید که هر زمان که وابستگی های جدیدی به خود اضافه می کنید
پروژه با استفاده از request.txt خود را به روز کنید pip freeze > requirements.txt
.
برای شفافتر کردن، چند نمونه کد دارم که دادههای کاربر جعلی تولید میکند و سپس در csv ذخیره میشود که از همه این نکات استفاده میکند. شما می توانید آن را از این مخزن github ببینید
https://github.com/BimaAdi/Make-Maintainable-Python-Project
این همه بچه ها است، هنوز نکات بیشتری برای ساخت پروژه پایتون قابل نگهداری مانند ساختار پروژه، استفاده از آزمایش، فرمت کننده و غیره وجود دارد، اما من می خواهم آن را فقط به پروژه اختصاصی پایتون، کلی و تا حد امکان، محدود کنم. اگر نکات بیشتری دارید یا نظر متفاوتی دارید، می توانید آن را در بخش نظرات زیر اضافه کنید. به سلامتی.