Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

บรรจุภัณฑ์และการเผยแพร่รหัส Python?


Python มีวิธีง่ายๆ ในการสร้างหรือเผยแพร่แพ็คเกจ

การจัดการแพ็คเกจใน Python สามารถใช้ได้ผ่านเครื่องมือต่างๆ −

  • ปิ๊บ- มันยังคงเป็นหนึ่งในตัวเลือกที่ต้องการเพราะแทบจะกำจัดการติดตั้งด้วยตนเองและการอัพเดทแพ็คเกจซอฟต์แวร์ไปยังระบบปฏิบัติการ มันจัดการรายการแพ็คเกจทั้งหมดและหมายเลขเวอร์ชันที่เกี่ยวข้อง ซึ่งส่งเสริมการทำสำเนาของกลุ่มแพ็คเกจทั้งหมดอย่างแม่นยำในสภาพแวดล้อมที่แยกจากกัน

  • Python Package Index (PPI) เป็นที่เก็บแพ็คเกจสาธารณะของแพ็คเกจที่ผู้ใช้ส่งมา ซึ่งสามารถติดตั้งได้โดยใช้ pip .i.e pip ติดตั้ง package_name

ด้านล่างนี้เป็นขั้นตอนทีละขั้นตอนในการอัปโหลดแพ็คเกจ

ขั้นตอนที่ 1:มีแพ็คเกจที่จะอัปโหลด

ฉันคิดว่าคุณมีแพ็คเกจที่พร้อมสำหรับการเผยแพร่ หากคุณไม่มี โปรดทำตามขั้นตอนด้านล่างเพื่อสร้างแพ็คเกจหรือโมดูลหลาม ข้อดีคือง่ายมาก

  • สร้างไฟล์ python ด้วยรหัสของคุณ เรียกว่า myfirstPackage.py หรือ myPackageName.py นี่คือโมดูล ไฟล์ (myfirstPackage.py) ที่มีข้อมูลอยู่ในนั้น นำเข้าหรือทำอะไรก็ได้ตามต้องการ

  • ทำเป็นแพ็คเกจ:
Just add an empty __init__.py file to it.

echo >> __init__.py

or use touch command

touch __init_.py


$dir
Volume in drive C has no label.
Volume Serial Number is 8CD6-8D39

Directory of c:\Python\Python361\firstPackage

08-04-2019 05.44 PM <DIR> .
08-04-2019 05.44 PM <DIR> ..
08-04-2019 02.25 PM 47 myFirstPackage.py
08-04-2019 05.44 PM 13 __init__.py

คุณสามารถดูไฟล์สองไฟล์จากข้างบนได้ภายในไดเร็กทอรี firstPackage

เพียงเท่านี้ การมีไดเร็กทอรีที่มีสองไฟล์ (__init__.py และ myfirstPackage.py) เรียกว่า package(myHelloModule)

การบรรจุโครงการของคุณ

ขั้นแรก โคลนโปรเจ็กต์ตัวอย่างและตั้งชื่อโมดูลของคุณ−

git clone https://github.com/pypa/sampleproject firstPackage

บรรจุภัณฑ์และการเผยแพร่รหัส Python?

ไฟล์สำคัญคือ−

  • Setup.py – ช่วยให้เราสามารถระบุการกำหนดค่าโครงการของเรา และเรียกใช้คำสั่งบรรจุภัณฑ์:ตัวอย่างเช่น ลองใช้คำสั่งนี้:python setup.py --help

  • Setup.cfg เป็นไฟล์ INI ที่มีค่าเริ่มต้นของตัวเลือกสำหรับคำสั่ง setup.py

  • README.rst อธิบายเป้าหมายของโครงการโดยใช้ข้อความที่ปรับโครงสร้างใหม่

คัดลอกโมดูลของคุณภายในโฟลเดอร์ใหม่นี้ และลบโมดูล "ตัวอย่าง" ที่มีอยู่ออก

└───firstPackage
│ LICENSE.txt
│ MANIFEST.in
│ myFirstPackage.py
│ README.md
│ setup.cfg
│ setup.py
│ tox.ini
│ __init__.py

กำหนดค่าชื่อ รุ่น คำอธิบาย

แก้ไข setup.py เพื่อให้มีข้อมูลพื้นฐานเกี่ยวกับแพ็คเกจ Python ของคุณ−

setup.py

import setuptools

with open("README.md", "r") as fh:
long_description = fh.read()

setuptools.setup(
   name="firstPackage",
   version="0.0.1",
   author="Rajesh Joshi",
   author_email="callraj.joshi@gmail.com",
   description="my First Package",
   long_description=long_description,
   long_description_content_type="text/markdown",
   url="https://github.com/pypa/sampleproject",
   packages=setuptools.find_packages(),
   classifiers=[
      "Programming Language :: Python :: 3",
      "License :: OSI Approved :: MIT License",
      "Operating System :: OS Independent",
   ],
)

และไฟล์ใบอนุญาตของคุณจะเป็นดังนี้−

MIT License

Copyright (c) [2019] [firstPackage]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

.สำหรับ README

## firstPackage
This is a sample package to learn the steps of creating and publishing package.

ขั้นตอนการบรรจุจริง

ติดตั้งหรืออัปเดตเครื่องมือติดตั้งและแพ็คเกจล้อในสภาพแวดล้อม

>pip install wheel twine setuptools –upgrade

ขั้นแรก สร้างการกระจายแหล่งที่มา “การกระจาย” ประเภทนี้ (.i.e. แพ็คเกจ) ต้องมีขั้นตอนการสร้างเมื่อติดตั้งโดย pip

>python setup.py sdist

ตอนนี้เราต้องการติดตั้ง “วงล้อ” (แพ็คเกจที่สร้างขึ้น) ซึ่งติดตั้งได้เร็วกว่าการแจกจ่ายต้นทาง

>python setup.py bdist_wheel

หวังว่าควรสร้างแพ็คเกจและคุณสามารถเห็นไฟล์บีบอัดของแพ็คเกจในไดเร็กทอรี dist ในโฟลเดอร์แพ็คเกจแรกของคุณข้างไฟล์ setup.py

กำลังอัพโหลดแพ็คเกจของคุณ

ตอนนี้สร้างสภาพแวดล้อมเสมือนใหม่ที่ตำแหน่งอื่นที่คุณเลือกและเปิดใช้งานได้ดังด้านล่าง

c:\Users\rajesh>virtualenv myPackage
Using base prefix 'c:\\python\\python361'
New python executable in c:\Users\rajesh\myPackage\Scripts\python.exe
Installing setuptools, pip, wheel...done.

c:\Users\rajesh\myPackage>.\Scripts\activate

(myPackage) c:\Users\rajesh\myPackage>

คัดลอกไฟล์ zip ที่สร้างขึ้นด้านบนในสภาพแวดล้อมใหม่ของคุณ

>pip install firstPackage-0.0.1.tar.gz

หากต้องการตรวจสอบว่าแพ็คเกจของคุณได้รับการติดตั้งในสภาพแวดล้อมที่เปิดใช้งาน เพียงเรียกใช้รายการ pip เพื่อแสดงรายการแพ็คเกจทั้งหมดในสภาพแวดล้อมปัจจุบันของคุณ

>pip list
Package      Version
------------ -------
firstPackage  0.0.1
pip           19.0.3
setuptools    41.0.0
wheel         0.33.1

ถึงเวลาเผยแพร่แพ็กเกจไปยัง PyPI เพื่อให้เผยแพร่ต่อสาธารณะ

ขั้นแรก ไปที่เส้นทางที่มี setup.py จากนั้นติดตั้งหรืออัปเดตแพ็คเกจคู่

>pip install --upgrade twine

สุดท้าย เผยแพร่แพ็คเกจของคุณไปยัง PyPI ผ่านระบบคู่

>twine upload dist/*
Enter your username: callraj.joshi
Enter your password:
Uploading distributions to https://upload.pypi.org/legacy/
Uploading firstPackage-0.0.1-py2.py3-none-any.whl
…

ด้านบนเราเพียงแค่ใส่ชื่อผู้ใช้และรหัสผ่าน จากนั้นระบบจะเริ่มอัปโหลดแพ็คเกจของเรา