یک اسکریپت پایتون بنویسید که فایل requirements.txt را بخواند، برای هر بسته بررسی کند آیا نصب شده است و در صورت نبودن با استفاده از pip آن را نصب کرده و عملیات را در یک فایل لاگ ثبت کند.

17.0 بازدید آخرین ویرایش در 199 روز قبل ساعت 22:19

0.0

برای حل این مسئله فایل requirements.txt را خط‌به‌خط بخوانید، خطوط خالی و کامنت‌ها را نادیده بگیرید، و برای هر بسته با importlib.util.find_spec بررسی کنید که بسته قابل وارد کردن باشد؛ اگر نبود از subprocess با sys.executable و گزینه -m pip install بسته برای نصب استفاده کنید. خروجی نصب و هر خطا را در یک فایل لاگ بنویسید و بهتر است اسکریپت را درون یک virtualenv اجرا کنید تا تداخل با محیط سیستمی پیش نیاید؛ همچنین برای جلوگیری از نصب‌های طولانی می‌توانید timeout و ثبت جزئیات خروجی (stdout/stderr) را اضافه کنید.

توسط پژوهشگر در 199 روز قبل ساعت 22:19
دسته بندی ها: Python Python for beginner
sara در 198 روز قبل ساعت 22:13

خوب است که برای هر خط از requirements، نام بسته را جدا کرده و خطوط خالی و کامنت را رد کنیم. اما به خاطر تفاوت بین نام پکیج و نام ماژول وارد‌شدنی (مثلاً Pillow/PIL) حتماً از یک نقشه یا بررسی با importlib.metadata استفاده کنید. نصب از طریق sys.executable -m pip install بسته با capturing stdout/stderr و timeout انجام شود و نتیجه در یک فایل لاگ ثبت گردد. اجرای اسکریپت در یک virtualenv و لاگ‌گیری با تاریخ می‌تواند تداخل با محیط سیستم را کاهش دهد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری