যেহেতু কেউ এখনও ওপি-র এই প্রশ্নটি আবৃত করেননি:
আমি যা করতে চেয়েছিলাম:
"পাইপ ইনস্টল ..." দিয়ে পাইথন মডিউল ইনস্টল-সক্ষম করুন
পিপিআইতে setuptools
এবং ব্যবহার করে আপনার প্যাকেজটি প্রস্তুত এবং আপলোড করার প্রাথমিক পদক্ষেপগুলি দেখানো এখানে একটি নিখুঁত ন্যূনতম উদাহরণ twine
।
এটি কোনওভাবেই কমপক্ষে টিউটোরিয়ালটি পড়ার বিকল্প নয় , এটি একেবারে মৌলিক উদাহরণে আবৃত হওয়ার চেয়ে অনেক বেশি।
প্যাকেজটি তৈরি করা ইতিমধ্যে এখানে অন্যান্য উত্তরগুলি দ্বারা কভার করা হয়েছে, সুতরাং আসুন আমরা ধরে নিই যে আমরা আমাদের ধাপটি coveredেকে রেখেছি এবং আমাদের প্রকল্প কাঠামোটি এরকম:
.
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
setuptools
প্যাকেজিংয়ের জন্য ব্যবহার করার জন্য, আমাদের একটি ফাইল যুক্ত করতে setup.py
হবে এটি আমাদের প্রকল্পের মূল ফোল্ডারে যায়:
.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
সর্বনিম্ন, আমরা আমাদের প্যাকেজের জন্য মেটাডেটা নির্দিষ্ট করি, আমাদের setup.py
দেখতে এটির মতো হবে:
from setuptools import setup
setup(
name='hellostackoverflow',
version='0.0.1',
description='a pip-installable package example',
license='MIT',
packages=['hellostackoverflow'],
author='Benjamin Gerfelder',
author_email='benjamin.gerfelder@gmail.com',
keywords=['example'],
url='https://github.com/bgse/hellostackoverflow'
)
যেহেতু আমরা সেট করেছি license='MIT'
, আমরা আমাদের প্রকল্পে একটি অনুলিপি LICENCE.txt
পুনরায় স্ট্রাকচারডটেক্সটে একটি রিডমি ফাইলের পাশাপাশি অন্তর্ভুক্ত করব README.rst
:
.
├── LICENCE.txt
├── README.rst
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
এই মুহুর্তে, আমরা ব্যবহার করে প্যাকেজিং শুরু করতে প্রস্তুত setuptools
, যদি আমাদের এটি ইতিমধ্যে ইনস্টল না করা থাকে তবে আমরা এটি দিয়ে এটি ইনস্টল করতে পারি pip
:
pip install setuptools
এটি করতে এবং একটি তৈরি করার জন্য source distribution
, আমাদের প্রকল্পের মূল ফোল্ডারে আমরা setup.py
কমান্ড লাইন থেকে আমাদের কল করি , উল্লেখ করে আমরা চাই sdist
:
python setup.py sdist
এটি আমাদের বিতরণ প্যাকেজ এবং ডিম-তথ্য তৈরি করবে এবং এর ফলে একটি ফোল্ডার কাঠামো তৈরি হবে, এতে আমাদের প্যাকেজটি এতে রয়েছে dist
:
.
├── dist/
├── hellostackoverflow.egg-info/
├── LICENCE.txt
├── README.rst
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
এই মুহুর্তে, আমাদের কাছে একটি প্যাকেজ রয়েছে যা আমরা ব্যবহার করে ইনস্টল করতে পারি pip
, সুতরাং আমাদের প্রকল্পের মূল থেকে (ধরে নিবেন যে এই নামকরণের মতো আপনার সমস্ত নামকরণ রয়েছে):
pip install ./dist/hellostackoverflow-0.0.1.tar.gz
যদি সবকিছু ঠিকঠাক হয়, আমরা এখন পাইথন ইন্টারপ্রেটারটি খুলতে পারি, আমি কোনও প্রবলেম এড়াতে আমাদের প্রকল্প ডিরেক্টরিটির বাইরে কোথাও বলব, এবং আমাদের চকচকে নতুন প্যাকেজটি ব্যবহার করার চেষ্টা করব:
Python 3.5.2 (default, Sep 14 2017, 22:51:06)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from hellostackoverflow import hellostackoverflow
>>> hellostackoverflow.greeting()
'Hello Stack Overflow!'
এখন যেহেতু আমরা প্যাকেজ ইনস্টল এবং কাজগুলি নিশ্চিত করেছি, আমরা এটি পিপিআইতে আপলোড করতে পারি।
যেহেতু আমরা আমাদের পরীক্ষাগুলির সাহায্যে লাইভ সংগ্রহস্থলকে কলুষিত করতে চাই না, তাই আমরা পরীক্ষার ভাণ্ডারগুলির জন্য একটি অ্যাকাউন্ট তৈরি করি এবং twine
আপলোড প্রক্রিয়াটির জন্য ইনস্টল করি :
pip install twine
এখন আমরা প্রায় সেখানে রয়েছি, আমাদের অ্যাকাউন্ট তৈরি হয়ে আমরা কেবল twine
আমাদের প্যাকেজটি আপলোড করতে বলি , এটি আমাদের শংসাপত্রগুলির জন্য জিজ্ঞাসা করবে এবং আমাদের প্যাকেজটিকে নির্দিষ্ট ভাণ্ডারে আপলোড করবে:
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
আমরা এখন পাইপআই পরীক্ষার সংগ্রহস্থলে আমাদের অ্যাকাউন্টে লগইন করতে পারি এবং কিছুক্ষণের জন্য আমাদের সতেজ আপলোড করা প্যাকেজটিতে আশ্চর্য হয়েছি এবং তারপরে এটি ব্যবহার করতে পারি pip
:
pip install --index-url https://test.pypi.org/simple/ hellostackoverflow
আমরা দেখতে পাচ্ছি যে, প্রাথমিক প্রক্রিয়া খুব জটিল নয় not যেমনটি আমি আগেই বলেছি, এখানে আচ্ছাদন করার চেয়ে এটিতে আরও অনেক কিছুই রয়েছে, তাই আরও গভীরতার সাথে ব্যাখ্যা করার জন্য টিউটোরিয়ালটি এগিয়ে যান এবং পড়ুন ।