آموزش فایل Requirements.txt در پایتون + کاربرد
هر طرحی که ایجاد میشود، شامل یک سری نیازمندیها و بستههای خارجی است که برای صحیح کارکردن برنامه باید نصب شوند. زیرا بخش عمدهای از برنامه از طریق این بستهها و فریمورکها ساخته شده است، بدون دریافت و نصب آنها، شما قادر به اجرای برنامه نخواهید بود. اما وقتی شما یک طرح را از گیتهاب دانلود میکنید یا همکارانتان آن را برای تست به شما میدهند، چه کاری باید انجام دهید؟ آیا باید هر بسته را به صورت جداگانه نصب کنید؟ بهتر است در نظر بگیرید که این طرح بر اساس ۲۰ بسته مختلف استوار است و در این حالت، نصب جداگانه این بستهها واقعاً خسته کننده و زمانبر خواهد بود.
برای حل این مسئله، زبان برنامهنویسی پایتون و ابزار مدیریت پکیج pip یک روش ساده را ارائه کردهاند: Requirements.txt. در واقع، فایل Requirements.txt یک فایل متنی ساده است که نیازمندیها و پکیجهای مورد استفاده در یک پروژه را در خود ذخیره میکند. هنگامی که در کنار یک پروژه پایتونی با این فایل مواجه میشوید، با استفاده از یک دستور ساده میتوانید تمام پکیجهای مشخص شده در این فایل را نصب کنید.
آشنایی با قالب و فرمت فایل Requirements.txt
فایل Requirements.txt به صورت متنی ساده و با یک فرمت خاص قالببندی میشود. هر خط در این فایل معمولاً یک پکیج یا نیازمندی را نمایندگی میکند. قالب فایل Requirements.txt معمولاً به شکل زیر است:
package1==version
package2==version
در اینجا، “package1” و “package2” نام پکیجها هستند و “version” نسخه مورد نیاز از هر پکیج را مشخص میکند. با استفاده از عملگر “==”، نام پکیج و نسخهی مربوطه جداگانه تعیین میشوند.
همچنین، میتوانید از عملگرهای دیگر نیز برای تعیین نسخه استفاده کنید. به عنوان مثال:
- “>=”: نسخه بزرگتر مساوی با مقدار مشخص شده
- “<=”: نسخه کوچکتر مساوی با مقدار مشخص شده
- “~=”: نسخهای که با مقدار مشخص شده سازگار است (معمولاً برای نسخههای همخوانی و سازگاری میانی استفاده میشود)
نمونهای از یک فایل Requirements.txt به شکل زیر است:
requests==2.26.0
numpy==1.21.2
pandas~=1.3.3
در این مثال، نسخه ۲.۲۶.۰ از پکیج requests، نسخه ۱.۲۱.۲ از پکیج numpy و هر نسخهای که با ورژن ۱.۳.۳ سازگار باشد از پکیج pandas مورد نیاز است.
میتوانم در فایل Requirements.txt از عملگرهای دیگری بجز “== ” استفاده کنم؟
در فایل Requirements.txt میتوانید از عملگرهای دیگری بجز “==” نیز استفاده کنید. عملگرهای دیگری که میتوانید در این فایل استفاده کنید عبارتند از:
- “>”: نسخه بزرگتر از مقدار مشخص شده
- “>=”: نسخه بزرگتر مساوی با مقدار مشخص شده
- “<“: نسخه کوچکتر از مقدار مشخص شده
- “<=”: نسخه کوچکتر مساوی با مقدار مشخص شده
- “!=”: نسخه متفاوت از مقدار مشخص شده
با استفاده از این عملگرها، میتوانید نسخههای مورد نیاز پکیجها را به صورت دقیقتر یا گستردهتر مشخص کنید. به عنوان مثال:
requests>=2.26.0
numpy>1.0.0
pandas!=0.25.0
در این مثال، نسخههای بزرگتر مساوی با ۲.۲۶.۰ از پکیج requests، نسخههای بزرگتر از ۱.۰.۰ از پکیج numpy و هر نسخهای که با ورژن ۰.۲۵.۰ متفاوت باشد از پکیج pandas مورد نیاز هستند.
با استفاده از این عملگرها، میتوانید نسخههای مورد نظر خود را با توجه به نیازهای پروژه تعیین کنید و اطمینان حاصل کنید که پکیجهایی که نصب میشوند، با سایر قسمتهای پروژه سازگاری دارند.
آیا میتوانم در فایل Requirements.txt از چندین عملگر برای یک پکیج استفاده کنم؟
در فایل Requirements.txt نمیتوانید از چندین عملگر برای یک پکیج استفاده کنید. هر خط در این فایل معمولاً یک پکیج و نسخهی مورد نیاز آن را مشخص میکند. شما میتوانید از یک عملگر برای مشخص کردن رابطهای مشخص بین پکیج و نسخه استفاده کنید، مانند “==”, “>=”, “>”, “<=”, “<“, “!=”. اما نمیتوانید این عملگرها را ترکیب کنید یا از چندین عملگر برای یک پکیج استفاده کنید.
به عنوان مثال، اگر نسخههای بین ۱.۰ تا ۲.۰ را برای پکیجی مشخص کنید، میتوانید از “>=” برای نسخه ۱.۰ و “<=” برای نسخه ۲.۰ استفاده کنید. مانند این:
mypackage>=1.0,<=2.0
در این حالت، پکیج با نسخههای بزرگتر مساوی ۱.۰ و کوچکتر مساوی ۲.۰ سازگار است. اما نمیتوانید مانند این استفاده کنید:
mypackage>1.0,<=2.0
چون این نحوه استفاده معتبر نیست و باعث خطا در نصب پکیجها میشود. در این صورت، باید از یک رابطهی مشخص بین نسخهها استفاده کنید و از چندین عملگر برای یک پکیج استفاده نکنید.
آموزش ایجاد فایل Requirements.txt در پایتون
برای ایجاد یک فایل Requirements.txt، شما میتوانید از یک ویرایشگر متنی مانند Notepad، Sublime Text، Visual Studio Code و غیره استفاده کنید. مراحل زیر را دنبال کنید تا یک فایل Requirements.txt ایجاد کنید:
در فایل جدید، هر خط را برای هر پکیج مورد نیاز و نسخهی مورد نظر آن تایپ کنید. مثلا:
` requests==2.26.0 numpy==1.21.2 pandas~=1.3.3
در این مثال، پکیج requests با نسخه ۲.۲۶.۰، پکیج numpy با نسخه ۱.۲۱.۲ و پکیج pandas با هر نسخهای که با ورژن ۱.۳.۳ سازگار است، مشخص شده است.
پس از تایپ نام پکیج و نسخهها، فایل را با نام “Requirements.txt” ذخیره کنید. مطمئن شوید که با پسوند “.txt” ذخیره شود.
حالا شما یک فایل Requirements.txt ساده را ایجاد کردهاید که ملزومات و پکیجهای مورد نیاز پروژه شما را مشخص میکند. این فایل را میتوانید به همراه پروژهی خود به اشتراک بگذارید تا سایر توسعهدهندگان بتوانند با استفاده از دستورات مربوطه، پکیجهای مورد نیاز را به راحتی نصب کنند.
چگونه میتوانم فایل Requirements.txt را به پروژهی خود اضافه کنم؟
برای اضافه کردن فایل Requirements.txt به پروژهی خود، مراحل زیر را دنبال کنید:
در پوشهی پروژهی خود، یک فایل جدید با نام “Requirements.txt” ایجاد کنید. میتوانید از روشهایی مانند دستور touch Requirements.txt
در ترمینال یا از ویرایشگر متنی برای ایجاد فایل استفاده کنید.
باز کنید فایل Requirements.txt با ویرایشگر متنی موردنظرتان.
بر اساس نیازهای پروژهی خود، نام پکیجها و نسخههای مورد نیاز را در خطوط مجزا تایپ کنید. به عنوان مثال:
` requests==2.26.0 numpy==1.21.2 pandas~=1.3.3
در این مثال، پکیج requests با نسخه ۲.۲۶.۰، پکیج numpy با نسخه ۱.۲۱.۲ و پکیج pandas با نسخههایی که با ورژن ۱.۳.۳ سازگار هستند، مشخص شده است.
حالا فایل Requirements.txt با ملزومات پروژهی شما ایجاد شده است. شما میتوانید این فایل را به یک سیستم کنترل نسخه مانند Git اضافه کنید و همراه با سایر فایلهای پروژه به اشتراک بگذارید. این کار به تیمهای توسعهدهنده کمک میکند تا پکیجهای مورد نیاز را با نسخههای مشخص و یکسان نصب کنند و تناسب بین محیطهای توسعهی مختلف را حفظ کنند.
همچنین، شما میتوانید از ابزارهای سازگاری وابستگی مانند pip، poetry، conda و غیره استفاده کنید تا از فایل Requirements.txt برای نصب پکیجهای مورد نیاز استفاده کنند. بسته به ابزار مورد استفاده شما، دستورات متفاوتی برای نصب پکیجها وجود دارد.
آموزش افزودن فایل Requirements.txt را به Git
برای این کار، میتوانید مراحل زیر را دنبال کنید:
ابتدا مطمئن شوید که دستور Git در سیستم شما نصب شده است و مسیر کاری شما در پوشه پروژه قرار دارد. باز کنید ترمینال یا کامند لاین و به پوشه پروژهی خود بروید. به طور معمول، میتوانید از دستور cd
برای تغییر مسیر استفاده کنید. مثلا:
cd path/to/your/project
از دستور زیر برای ایجاد یک مخزن Git جدید در پروژه استفاده کنید:
git init
سپس، از دستور git add
برای اضافه کردن فایل Requirements.txt به مخزن Git استفاده کنید:
git add Requirements.txt
حالا فایل Requirements.txt به مخزن Git اضافه شده است. برای ثبت تغییرات، از دستور git commit
استفاده کنید:
git commit -m "Add Requirements.txt file"
در انتها، فایلها و تغییرات شما را به یک مخزن اصلی یا ریموت متصل کنید. برای این کار، میتوانید از دستور git remote add
و git push
استفاده کنید. به عنوان مثال:
git remote add origin https://github.com/username/repository.git
git push -u origin master
حالا فایل Requirements.txt به مخزن Git شما اضافه شده است و در مخزن ریموت شما نیز بارگذاری شده است. سایر اعضای تیم توسعهدهنده میتوانند از مخزن ریموت شما کلون کنند و فایل Requirements.txt را دریافت کنند.
چگونه از requirements.txt در پروژه استفاده کنیم؟
با استفاده از فایل Requirements.txt، میتوانید به راحتی پکیجهای مورد نیاز پروژهی خود را نصب کنید. برای استفاده از فایل Requirements.txt، مراحل زیر را دنبال کنید:
ابتدا، مطمئن شوید که محیط مجازی فعال است. استفاده از محیط مجازی برای پروژههای پایتون توصیه میشود تا نصب پکیجها به درستی انجام شود و تداخل با محیطهای دیگر از جمله سیستم عامل جلوگیری شود.
در ترمینال یا کامند لاین، به مسیر پروژهی خود بروید.
اجرای دستور زیر را برای نصب پکیجهای مورد نیاز استفاده کنید:
pip install -r Requirements.txt
این دستور، پکیجهای مورد نیاز را بر اساس محتوای فایل Requirements.txt نصب میکند. نسخههای مورد نیاز نیز با توجه به مشخصات در فایل مشخص میشوند.
پس از اجرای دستور بالا، pip شروع به نصب پکیجهای مورد نیاز میکند. اگر پکیجها قبلاً نصب نشده باشند، آنها را دانلود و نصب میکند. اگر پکیجها قبلاً نصب شده باشند، pip از نسخههای مشخص شده در فایل Requirements.txt استفاده میکند و در صورت نیاز به بروزرسانی، بروزرسانی میکند.
پس از اتمام نصب پکیجها، میتوانید از آنها در پروژهی خود استفاده کنید. توصیه میشود که برای هر پروژه از یک محیط مجزا استفاده کنید و فایل Requirements.txt را در همان محیط مجازی مرتبط با پروژه نصب کنید. این کار به تیمهای توسعهدهنده کمک میکند تا پکیجهای مورد نیاز را با نسخههای یکسان نصب کنند و تناسب بین محیطهای توسعهی مختلف را حفظ کنند.
چگونه میتوانم نسخههای مشخص شده برای پکیجها را در فایل Requirements.txt تغییر داد؟
بله، میتوانید نسخههای مشخص شده برای پکیجها را در فایل Requirements.txt تغییر دهید. فایل Requirements.txt یک لیست از پکیجها و نسخههای مورد نیاز است که میتوانید آنها را ویرایش کنید. برای این کار، مراحل زیر را دنبال کنید:
باز کنید فایل Requirements.txt با ویرایشگر متنی خود.
در هر خط از فایل، یک پکیج و نسخهای که مورد نیاز است، نوشته شده است. به عنوان مثال:
`plaintext package1==1.0.0 package2>=2.1.0
در این مثال، package1
نسخه ۱.۰.۰ را مشخص میکند و package2
حداقل نسخه ۲.۱.۰ را مشخص میکند.
بر اساس نیاز خود، نسخهها را ویرایش کنید. میتوانید یک نسخه خاص را مشخص کنید (مانند package1==1.2.0
) یا محدودیتهایی را برای نسخهها قرار دهید (مانند package2>=2.1.0,<3.0.0
)، که به شما اجازه میدهد بین دو نسخه مشخص انتخاب کنید.
پس از ویرایش فایل، آن را ذخیره کنید.
حالا میتوانید دستور pip install -r Requirements.txt
را اجرا کنید تا پکیجها با نسخههای جدید مشخص شده در فایل نصب شوند.
توجه داشته باشید که تغییر نسخهها ممکن است باعث تداخلها و عدم سازگاری در پروژه شود. بنابراین، قبل از تغییر نسخهها، بهتر است در مورد تغییراتی که ممکن است بر روی پروژهی شما ایجاد شود و از نظر سازگاری، تستهای لازم را انجام دهید.
کاربرد استفاده از requirements.txt
استفاده از فایل Requirements.txt در پروژههای پایتون دارای برخی فواید مهم است. در زیر، تعدادی از این فواید را بررسی میکنیم:
- سهولت نصب پکیجها: با استفاده از فایل Requirements.txt، میتوانید تمام پکیجهای مورد نیاز پروژهی خود را با یک دستور نصب کنید. این روش سادهتر و ایمنتر از نصب دستی پکیجها است، زیرا تمام پکیجهای مورد نیاز به طور خودکار و با نسخههای مشخص شده نصب میشوند.
- حفظ یکپارچگی و سازگاری: با استفاده از فایل Requirements.txt، میتوانید نسخههای مشخص شده برای پکیجها را در پروژهی خود حفظ کنید. این کار به تیم توسعهدهنده کمک میکند تا همگامی بین محیطهای توسعهی مختلف را حفظ کنند و از تداخلها و مشکلات ناشی از تغییرات نسخههای پکیجها جلوگیری کنند.
- تسهیل همکاری: با استفاده از فایل Requirements.txt، توسعهدهندگان جدید میتوانند به راحتی پروژهی شما را راهاندازی کنند. با اجرای یک دستور نصب، تمام پکیجهای مورد نیاز برای پروژه را در محیط مجازی خود نصب میکنند و میتوانند به طور سریع واقعیت پروژه را تجربه کنند.
- بهبود تکرارپذیری: با داشتن یک فایل Requirements.txt، میتوانید تکرارپذیری پروژه را بهبود بخشید. با به اشتراک گذاشتن فایل Requirements.txt با همکاران یا سیستمهای CI/CD، مطمئن میشوید که همه پکیجها با نسخههای مشخص شده در پروژه نصب میشوند و محیط اجرایی یکسانی دارند.
- مدیریت وابستگیها: با استفاده از فایل Requirements.txt، میتوانید وابستگیهای پروژه را مدیریت کنید. ممکن است پکیجها وابستگی به یکدیگر داشته باشند و از طریق فایل Requirements.txt میتوانید این وابستگیها را به صورت صحیح مشخص کنید.
به طور کلی، استفاده از فایل Requirements.txt به شما کمک میکند پروژهی خود را مدیریت کنید، سازگاری و همگانی را حفظ کنید.