آشنایی با فایل Requirements.txt در پایتون
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 6 دقیقه

آشنایی با فایل Requirements.txt در پایتون

هر پروژه‌ای که ساخته می‌شود حاوی یکسری ملزومات و پکیج‌های خارجی‌ست که برای درست کار کردن اپلیکیشن باید نصب شود. از آنجایی که کلیت اپلیکیشن از طریق این پکیج‌ها و فریمورک‌ها ساخته شده است شما بدون دانلود و نصب آن‌ها نمی‌توانید اپلیکیشن را اجرا کنید. اما وقتی که یک پروژه را از گیت‌هاب دانلود می‌کنید و یا اینکه هم تیمی‌تان برای تست کردن، آن را به شما می‌دهد شما چه کاری را باید انجام دهید؟ آیا تک به تک پکیج‌ها را نصب می‌کنید؟ فکر کنید که این پروژه مبتنی بر ۲۰ پکیج مختلف است در این حالت نصب کردن تک به تک این پکیج‌ها واقعا زجر آور و طاقت فرسا خواهد بود. 

برای حل این مشکل پایتون و پکیج منیجر pip یک ساز و کار ساده را ارائه کرده است: Requirements.txt. در واقع Requirements.txt یک فایل متنی ساده‌ است که ملزومات و پکیج‌های مورد استفاده قرار گرفته در یک پروژه را در خود ذخیره می‌کند. زمانی که در کنار یک پروژه پایتونی چنین فایلی را مشاهده کردید تنها با یک دستور ساده می‌توانید تمام پکیج‌های ذکر شده در این فایل را نصب کنید.

در این مطلب از وبسایت راکت قصد داریم شما را با فایل Requirements.txt آشنا کرده و شیوه استفاده و همچنین پیاده‌سازی آن را یاد بگیریم.

قالب و فرمت فایل Requirements.txt

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

Use requirements.txt | PyCharm Documentation

در تصویر بالا شما یک فایل Requirements.txt را مشاهده می‌کنید که حاوی اسامی پکیج‌هایی‌ست که در یک پروژه مورد استفاده قرار گرفته است. همچنین در مقابل هر کدام از این اسامی یک عدد وجود دارد که بیانگر نسخه آن پکیج یا فریمورک است. در ادامه با چگونگی ایجاد چنین فایلی و نصب کردن پکیج‌ها از طریق آن آشنا خواهید شد.

چگونه فایل Requirements.txt را ایجاد کنیم؟

برای اینکه فایل Requirements.txt را ایجاد کنید ابتدا نیاز است که محیط مجازی یا Virtual Environment پروژه خود را بسازید. اگر از IDE مانند Pycharm استفاده می‌کنید این محیط به صورت خودکار در دایرکتوری .venv ایجاد می‌شود اما اگر با ویژوال استدیو کد کار می‌کنید شما باید به صورت دستی چنین محیطی را ایجاد نمایید. اگر قصد دارید با محیط‌های مجازی یا Virtual Environment آشنا شوید پیشنهاد می‌کنم آموزش «محیط مجازی Pipenv» را مشاهده کنید.

برای ایجاد فایل Requirements.txt تنها کاری که باید انجام دهید این است که وارد دایرکتوری اصلی پروژه شده و از طریق ترمینال یا CMD دستور زیر را وارد کنید. البته در نظر داشته باشید که تنها زمانی این دستور به خوبی کار خواهد کرد که محیط مجازی خود را فعال کرده و در داخل آن قرار گرفته باشید:

$ pip freeze > requirements.txt

بعد از انجام اینکار می‌توانید مشاهده کنید که یک فایل جدید به دایرکتوری با نام requirements.txt اضافه شده است.

1NEE23GJuy_i0qdANdi6twSQGnjfHrjVZ6LuUlENe57kqsMoUve3W0WcmxZLfY9JW04GrYZghVWFtY4_LnVU-isHVxv0ySpMCDQ5sYwhw2BhlQjCLbj2oa_v_nMIUgar2xayjkPRj6ogUARpZEYtKiA

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

چگونه از requirements.txt استفاده کنیم؟

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

pip install -r requirements.txt

بعد از انجام این کار تمام پکیج‌های مورد نیاز پایتون برای اجرا اپلیکیشن دانلود و نصب می‌شوند. حال شما می‌توانید پروژه را اجرا کنید.

فواید استفاده از requirements.txt

به صورت کلی می‌توانیم چندین مزیت استفاده از requirements.txt را بیان کنیم که هر کدام در شرایط و موقعیت‌های مختلف بسیار حیاتی و کاربردی هستند.

  • مدیریت وابستگی‌ها: با استفاده از requirements.txt شما یک فایل را در اختیار دارید که تمام ملزومات اصلی پروژه‌تان در آن قرار گرفته و در نهایت همه چیز به آسانی مدیریت می‌شود. بنابراین نیازی به نوشتن یادداشت و استفاده از روش‌های غیر استاندارد برای لیست کردن ملزومات پروژه‌تان ندارید.
  • به اشتراک گذاری پروژه:‌ زمانی که پروژه‌تان را از طریق گیت‌هاب منتشر می‌کنید یا آن را به یک همکارتان می‌دهید، بدون اینکه نیاز باشد که به صورت تک به تک نام پکیج‌ها را ذکر کنید می‌توانید یک فایل requirements.txt را در داخل پروژه قرار دهید. از آنجایی که requirements.txt یک رویکرد استاندارد است تمام توسعه دهندگان پایتون می‌دانند که در مواجه با آن باید چه کاری را انجام دهند.
  • خودکارسازی: در انجام فرایند CI/CD استفاده از requirements.txt می‌تواند بسیار مفید و کمک کننده باشد. دلیل این موضوع نیز خودکارسازی فرایند نصب و پیاده‌سازی پکیج‌ها و ملزوماتی‌ست که برای اجرا پروژه به آن نیاز دارید.
  • امنیت: هر چند که شاید مسئله امنیت چندان مزیت اصلی در نظر گرفته نشود اما با در نظر گرفتن این موضوع که توسعه دهنده اصلی با یک پکیج کار کرده و تجربه استفاده از آن را دارد و می‌داند که آیا Stable است یا خیر، این کمک را به شما می‌کند تا به بهترین شیوه اپلیکیشن را اجرا کنید و دقیقا همان نسخه‌ای از پکیج‌ها را نصب کنید که برای اجرا اپلیکیشن به آن نیاز دارید.

در پایان

مدیریت پکیج‌ها در پایتون یک مسئله مهم و حیاتی‌ست چرا که بدون استفاده کردن از آن‌ها نخواهید توانست که یک پروژه را به خوبی و به صورت صد در صدی پیش ببرید و آن را اجرا کنید. با استفاده از تکنیک requirements.txt شما این قابلیت را پیدا خواهید کرد که ملزومات یک پروژه را به صورت درست پیاده‌سازی و نصب بکنید و در نهایت بدون بوجود آمدن مشکل اپلیکیشن را اجرا نمایید.

اگر قصد دارید به صورت حرفه‌ای پایتون را یاد بگیرید و با تمام نکات پیشرفته آن آشنا شوید پیشنهاد می‌کنیم که حتما از دوره «آموزش پیشرفته پایتون» استفاده کنید.

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
5 از 1 رای

/@arastoo
ارسطو عباسی
کارشناس تولید و بهینه‌سازی محتوا

Senior Technical Writer

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

ارسطو عباسی

کارشناس تولید و بهینه‌سازی محتوا