۳۰ آذر ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

چگونه پروژه های پایتون را با شعر مدیریت کنیم

با Poetry، Python بالاخره راهی برازنده برای مدیریت محیط‌های مجازی و وابستگی‌ها برای پروژه‌های توسعه پیدا کرد. در اینجا نحوه شروع به کار آمده است.

با Poetry، Python بالاخره راهی برازنده برای مدیریت محیط‌های مجازی و وابستگی‌ها برای پروژه‌های توسعه پیدا کرد. در اینجا نحوه شروع به کار آمده است.

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

شعر نوعی قابلیت مدیریت پروژه همه‌جانبه را به پایتون می‌آورد که Go و Rust مدت‌هاست از آن لذت می‌بردند. شعر وابستگی های قطعی را با نسخه های بسته خاص ارائه می دهد، بنابراین پروژه ها به طور مداوم در مکان های مختلف ساخته می شوند. شعر همچنین ساخت، بسته‌بندی، و انتشار پروژه‌ها و کتابخانه‌ها در PyPI را آسان‌تر می‌کند تا دیگران بتوانند ثمره‌های زحمات پایتون شما را به اشتراک بگذارند.

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

نحوه راه اندازی Poetry در پایتون

شعر عمداً بر خلاف سایر ابزارهای وابستگی پایتون و مدیریت پروژه است که با راه‌اندازی شروع می‌شود. به جای استفاده از pip، Poetry از یک نصب‌کننده سفارشی استفاده می‌کند. نصب کننده برنامه Poetry را به فهرست نمایه کاربر شما اضافه می کند، بنابراین می توان از آن با هر نصب پایتون در سیستم شما، چه در حال یا چه در آینده استفاده کرد.

اگرچه شما می توانید از pip install poetry برای نصب Poetry در یک نصب خاص Python استفاده کنید، این به دو دلیل توصیه نمی شود. اول، ممکن است با سایر فایل های سیستم تضاد داشته باشد. دوم، استفاده از Poetry را با نسخه‌های مختلف پایتون و محیط‌های مجازی مختلف دشوار می‌کند.

زمان استفاده از کلاس های انتزاعی در مقابل رابط ها در جاوا

ایجاد یک پروژه Python با مدیریت شعر

هنگامی که Poetry را نصب کردید، می‌توانید به سادگی با تایپ poetry new یک فهرست پروژه جدید با مدیریت Poetry ایجاد کنید. این دستور یک زیر شاخه به نام ایجاد می کند و آن را با داربست پروژه پر می کند.

داربست پروژه شعر شامل موارد زیر است:

  • pyproject.toml: فایل تعریف پروژه. شعر این تعریف را برای شما مدیریت می کند. اگر می‌دانید چه کاری انجام می‌دهید، می‌توانید فایل را مستقیماً ویرایش کنید، اما بیشتر اوقات نیازی به این کار ندارید. توسعه دهندگان باید در صورت امکان از استاندارد pyproject.toml برای همه پروژه‌های جدید پایتون در آینده استفاده کنند.
  • README.rst: یک فایل README خالی در قالب ReStructuredText، فرمت فایل مورد استفاده برای اسناد پایتون. (هیچ چیزی نمی گوید که باید از قالب .rst برای اسناد خود استفاده کنید؛ می توانید از Markdown برای موارد ساده تر استفاده کنید.)
  • تست‌ها: یک زیر شاخه با داربست برای تست‌های واحد. اگر عادت به نوشتن تست برای پروژه های جدید خود ندارید، باید این کار را داشته باشید!
  • یک زیر شاخه با نام پروژه که حاوی کد پروژه شما است.

مدیریت محیط های مجازی Python در Poetry

احتمالاً اولین چیزی که با پروژه جدید Poetry می خواهید، یک محیط مجازی پایتون است. درست به شکل، شعر روش متمایز خود را برای مدیریت محیط های مجازی دارد. به‌جای قرار دادن محیط‌های مجازی در دایرکتوری پروژه، Poetry آن‌ها را در یک فهرست پنهان متمرکز قرار می‌دهد که بسته به سیستم عامل متفاوت است:

  • یونیکس: ~/.cache/pypoetry/virtualenvs
  • MacOS: ~/Library/Caches/pypoetry/virtualenvs
  • ویندوز: C:\Users\\AppData\Local\pypoetry\Cache\virtualenvs یا %LOCALAPPDATA%\pypoetry\Cache\virtualenvs

مزیت رویکرد Poetry این است که می‌توان محیط‌های مجازی را در پروژه‌ها به اشتراک گذاشت هر زمان که منطقی باشد. اما انجام این کار مستلزم تغییر عادات کاری شما است.

برای راه‌اندازی یک محیط مجازی در Poetry، به دایرکتوری پروژه بروید و poetry env use python (یا poetry env use py را در ویندوز تایپ کنید). Poetry یک محیط مجازی جدید ایجاد می‌کند، آن را در فهرست حافظه پنهان ذخیره می‌کند و یک نام به‌طور تصادفی برای محیط مجازی نمایش می‌دهد.

برای راحتی بیشتر، Poetry هر گونه وابستگی فهرست شده در فایل pyproject.toml پروژه را نیز نصب می کند. اگر بخواهید یک پروژه Poetry را از جای دیگری کپی کنید و آن را روی سیستم خود راه اندازی کنید، این فوق العاده مفید خواهید بود.

توجه داشته باشید که اگر poetry env use python را در فهرستی از پروژه اجرا کنید که قبلاً یک محیط مجازی اختصاص داده شده توسط Poetry دارد، Poetry آن محیط مجازی را در زمینه جلسه CLI فعال می‌کند.

>

در مرحله بعد، می‌خواهید از محیط‌های مجازی مدیریت‌شده توسط Poetry برای کار با IDE خود استفاده کنید. بسیاری از IDE های پایتون اکنون به طور خودکار وجود یک محیط Poetry را تشخیص می دهند. به عنوان مثال، Visual Studio Code می تواند این کار را انجام دهد، اگرچه اگر محیط را در ترمینال VS Code تنظیم کنید، ممکن است نیاز به بارگیری مجدد پنجره پروژه داشته باشید. (برای یافتن این دستور، >بارگذاری مجدد پنجره را در پالت فرمان تایپ کنید.) 

اگر نمی‌خواهید Poetry محیط‌های مجازی شما را مدیریت کند، می‌توانید با این دستور رفتار را غیرفعال کنید:


poetry config virtualenvs.create false

فقط به خاطر داشته باشید که غیرفعال کردن این ویژگی یکی از مزایای بزرگ Poetry را از بین می برد.

افزودن وابستگی به پروژه پایتون در شعر

شما می‌توانید وابستگی‌ها را به یکی از دو روش در پروژه شعر اضافه کنید: به عنوان یک وابستگی کلی که توسط پروژه در همه شرایط استفاده می‌شود، یا به عنوان بخشی از یک گروه وابستگی.

گروه‌های وابستگی به شما امکان می‌دهند مجموعه‌هایی از وابستگی‌ها را در یک پروژه ایجاد کنید، هر کدام برای کاربردهای متفاوت. برای مثال، می‌توانید با ابزارهای کدگذاری مانند مشکی، mypy یا docutils، یک مجموعه وابستگی به‌طور خاص برای توسعه‌دهندگان ایجاد کنید.

برای افزودن وابستگی به پروژه به طور کلی، از poetry add استفاده کنید. برای افزودن وابستگی به یک گروه معین، از poetry add --group استفاده کنید.

توجه داشته باشید که دستور poetry add بسیار شبیه به pip install عمل می‌کند، زیرا می‌توانید نام بسته یا مسیر Git را مشخص کنید (به عنوان مثال، git+https ://github.com/developer/project.git#branchname). همچنین می‌توانید شعر را برای استفاده از مخازن خصوصی پیکربندی کنید. p>

پس از رفع و نصب وابستگی ها، Poetry فایلی به نام poetry.lock در فهرست پروژه ایجاد می کند. این فایل مانیفست تمام وابستگی های دانلود شده است و باید همراه با بقیه پروژه شما ذخیره شود. سپس هر کسی که یک کپی از پروژه را از کنترل منبع خارج کند، نسخه‌های یکسانی از همه بسته‌های مورد نیاز را دریافت می‌کند.

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

حذف محیط مجازی Poetry

به‌طور پیش‌فرض، یک محیط مجازی تحت مدیریت Poetry در یک فهرست مرکزی روی سیستم زندگی می‌کند، به دور از پروژه‌های مرتبط با آن. در نتیجه، حذف دایرکتوری پروژه، محیط مجازی مربوطه را نیز حذف نمی کند، زیرا Poetry چنین مواردی را به طور خودکار ردیابی نمی کند. شما باید خودتان محیط های مجازی مدیریت شده را حذف کنید.

برای انجام این کار، به دایرکتوری ریشه پروژه Poetry مورد نظر بروید و دستور poetry env remove python (یا poetry env remove py، برای ویندوز) را صادر کنید. . توجه داشته باشید که اگر رفتار پیش‌فرض Poetry را نادیده گرفته باشید و محیط را در فهرست پروژه خود قرار دهید، می‌توانید محیط را به صورت دستی حذف کنید، اما انجام مجدد این کار یکی از بهترین ویژگی‌های Poetry را از بین می‌برد.