پایتون

Welcome!

This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

8

ساخت کتابخانه در پایتون

سلام. من یه کد نوشتم میخوام تبدیلش کنم به کتابخانه پایتون که با دستور pip install نصب بشه. باید چیکار کنم؟

1 توضیح
آواتار
رها کردن

انجام این کار به روش دستی خیلی سخت و زمان بر هست. به خصوص برای افرادی که تجربه کمی برای کار با پیاتون دارند. به نظر من استفاده از ابزارهایی مثل https://pyscaffold.org/en/stable/ روش بهتری هست.

2 پاسخ ها
3
آواتار
فردین مردانی
بهترین پاسخ

ساخت کتابخانه در پایتون


برای تبدیل کد خود به یک کتابخانه پایتون که با دستور pip install نصب بشه، شما باید چند مرحله را طی کنید:

• اول، شما باید یک پروژه پایتون با ساختار مناسب بسازید. شما باید یک دایرکتوری با نام کتابخانه خود ایجاد کنید و در آن یک دایرکتوری دیگر به نام src قرار دهید. در دایرکتوری src، شما باید یک دایرکتوری دیگر با نام کتابخانه خود ایجاد کنید و در آن فایلهای کد خود را قرار دهید. همچنین شما باید یک فایل خالی به نام init.py در دایرکتوری کتابخانه خود ایجاد کنید تا پایتون بتواند آن را به عنوان یک پکیج شناسایی کند. برای مثال، اگر نام کتابخانه شما mylibrary باشد، شما باید ساختار زیر را داشته باشید:


mylibrary/
-- src/
-- mylibrary/
-- __init__.py
-- your_code.py


• دوم، شما باید چند فایل مهم را برای توصیف و تنظیم کتابخانه خود ایجاد کنید. این فایلها عبارتند از:

• README.md: این فایل شامل توضیحات کتابخانه شما است که برای کاربران مفید است. شما باید در این فایل مواردی مانند هدف، نحوه نصب، نحوه استفاده، مثال ها، مجوز و ... را بنویسید. این فایل با فرمت MarkDown نوشته میشود.

• LICENSE: این فایل شامل متن مجوز کتابخانه شما است که برای حفظ حقوق شما و کاربران مهم است. شما باید یک مجوز مناسب برای کتابخانه خود انتخاب کنید و متن آن را در این فایل قرار دهید. برای مثال، میتوانید از مجوز MIT استفاده کنید که یک مجوز ساده و رایج است.

• pyproject.toml: این فایل شامل اطلاعاتی در مورد ابزارهایی است که برای ساخت و بسته بندی کتابخانه شما لازم است. شما باید در این فایل مشخص کنید که از چه ابزارهایی استفاده میکنید و چه وابستگی هایی دارند. برای مثال، میتوانید از ابزار setuptools و wheel استفاده کنید که ابزارهای رایجی برای ساخت و بسته بندی کتابخانه های پایتون هستند. برای این کار، شما باید محتوای زیر را در فایل pyproject.toml قرار دهید:


[build-system]
requires = [
    "setuptools>=42",
    "wheel"
]
build-backend = "setuptools.build_meta"


• setup.cfg: این فایل شامل اطلاعاتی در مورد کتابخانه شما است که برای ابزارهای ساخت و بسته بندی لازم است. شما باید در این فایل مشخصات کتابخانه خود را مانند نام، نسخه، نویسنده، توضیحات، وابستگی ها و ... را بنویسید. برای مثال، میتوانید محتوای زیر را در فایل setup.cfg قرار دهید:


[metadata]
name = mylibrary
version = 1.0.0
author = Your Name
author_email = your.email@example.com
description = A short description of your library
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/your-username/mylibrary
classifiers =
Programming Language :: Python :: 3
License :: OSI Approved :: MIT License
Operating System :: OS Independent

[options]
package_dir =
= src
packages = find:
python_requires = >=3.6

[options.packages.find]
where = src



• سوم، شما باید کتابخانه خود را ساخته و بسته بندی کنید. برای این کار، شما باید ابزار build را نصب کنید و دستور زیر را در دایرکتوری اصلی پروژه خود اجرا کنید:


python3 -m pip install --upgrade build
python3 -m build


این دستور باعث میشود که یک دایرکتوری جدید به نام dist ایجاد شود و فایلهای بسته بندی شده کتابخانه شما در آن قرار گیرند.

• چهارم، شما باید کتابخانه خود را به مخزن پایتون آپلود کنید. برای این کار، شما باید یک حساب کاربری در سایت PyPIhttps://www.freecodecamp.org/news/how-to-create-and-upload-your-first-python-package-to-pypi/ ایجاد کنید و یک توکن API برای احراز هویت دریافت کنید. سپس شما باید ابزار twine را نصب کنید و دستور زیر را در دایرکتوری اصلی پروژه خود اجرا کنید:

python3 -m pip install --user --upgrade twine
python3 -m twine upload dist/*

این دستور باعث میشود که فایلهای بستهبندی شده کتابخانه شما به مخزن پایتون آپلود شوند و برای کاربران قابل دسترسی باشند.

اینها مراحل اصلی تبدیل کد شما به یک کتابخانه پایتون هستند.


درمورد فایل init



فایل init.py یک فایل ویژه پایتون است که برای نشان دادن اینکه یک دایرکتوری باید به عنوان یک پکیج پایتون در نظر گرفته شود، استفاده میشود. این فایل معمولا خالی است، اما میتوان از آن برای تنظیم یا پیکربندی پکیج یا تعیین متغیر all که کنترل میکند که چه نمادهایی وقتی کسی از دستور from package import * استفاده میکند، وارد شوند، استفاده کرد. در فایل init.py میتوان هر کد پایتونی را نوشت که در هر ماژول دیگری میتوان نوشت و پایتون هنگام وارد کردن پکیج، برخی ویژگیهای اضافی را به ماژول اضافه میکندhttps://stackoverflow.com/questions/448271/what-is-init-py-for.

در فایل init.py میتوان از چندین روش استفاده کرد. برخی از مثالهایی که میتوانید در فایل init.py انجام دهید، عبارتند از:

• میتوانید از فایل init.py برای تنظیم پکیج هنگامی که وارد میشود، استفاده کنید. برای مثال، میتوانید متغیرها را تعیین کنید یا کارهای مقدماتی دیگری را انجام دهید که برای کارکرد صحیح پکیج لازم هستند.

• میتوانید از فایل init.py برای تعیین اینکه چه نمادهایی باید وقتی کسی از دستور from package import * استفاده میکند، وارد شوند، استفاده کنید. این کار با تعیین متغیر all انجام میشود که یک لیست از رشته هایی است که نام نمادهایی را که باید وارد شوند، دارند.

• میتوانید از فایل init.py برای تعریف زیرماژولها یا زیرپکیج هایی در پکیج خود استفاده کنید. این کار با ایجاد زیردایرکتوریهایی در پکیج و قرار دادن فایلهای init.py در آنها انجام میشود. این کار به شما امکان میدهد پکیج خود را به واحدهای منطقی تقسیم کنید و استفاده و نگهداری آن را آسانتر کنید.

• میتوانید از فایل init.py برای تعریف API پکیج خود استفاده کنید که مجموعهای از توابع، کلاسها و نمادهای دیگری است که برای استفاده عمومی در نظر گرفته شدهاند. این کار میتواند به کاربران پکیج کمک کند تا بفهمند که چه چیزهایی برای آنها در دسترس است و چگونه از آنها استفاده کنند.

• میتوانید از فایل init.py برای تعریف قلابهای واردات سفارشی یا رفتارهای سفارشی دیگر برای پکیج خود استفاده کنید. این کار میتواند برای موارد پیشرفته مفید باشد، مانند پیاده سازی پشتیبانی از سینتکس ماژول جایگزین یا سفارشی سازی نحوه وارد کردن پکیج.

آواتار
رها کردن
3
بهترین پاسخ

میتوانید از کتابخانه setuptools استفاده کنید

به یک دایرکتوری شامل فایل setup.py و فایل های init__.py__ نیاز دارید

pyexample
├── pyexample
│   ├── __init__.py
│   ├── module_mpi4py_1.py
│   ├── module_numpy_1.py
│   └── module_numpy_2.py
└── setup.py

هر پوشه ای که لازم است بخشی از کتابخانه باشه فقط در صورتی به کتابخانه اضافه میشه که شامل فایل  init__.py__ باشد

* فایل  init__.py__ چیست؟ ..


آواتار
رها کردن