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