Hướng dẫn packages in python with example - gói trong python với ví dụ

Chúng tôi tổ chức một số lượng lớn các tệp trong các thư mục và thư mục con khác nhau dựa trên một số tiêu chí, để chúng tôi có thể tìm và quản lý chúng một cách dễ dàng. Theo cách tương tự, một gói trong Python lấy khái niệm về cách tiếp cận mô -đun đến mức logic tiếp theo. Như bạn đã biết, một mô -đun có thể chứa nhiều đối tượng, chẳng hạn như các lớp, chức năng, v.v. Một gói có thể chứa một hoặc nhiều mô -đun có liên quan. Về mặt vật lý, một gói thực sự là một thư mục chứa một hoặc nhiều tệp mô -đun.

Hãy tạo một gói có tên MyPackage, sử dụng các bước sau:

  • Tạo một thư mục mới có tên D:\MyApp.
  • Bên trong MyApp, tạo một thư mục con với tên 'MyPackage'.
  • Tạo một tệp __init__.py trống trong thư mục MyPackage.
  • Sử dụng trình soạn thảo nhận biết Python như IDLE, hãy tạo các mô-đun chào hỏi và chức năng.py với mã sau:

def SayHello(name):
    print("Hello ", name)

def sum(x,y):
    return x+y

def average(x,y):
    return (x+y)/2

def power(x,y):
    return x**y

Đó là nó. Chúng tôi đã tạo gói của chúng tôi được gọi là MyPackage. Sau đây là cấu trúc thư mục:

Hướng dẫn packages in python with example - gói trong python với ví dụ
Cấu trúc thư mục gói

Nhập một mô -đun từ một gói

Bây giờ, để kiểm tra gói của chúng tôi, điều hướng dấu nhắc lệnh đến thư mục MyApp và gọi dấu nhắc Python từ đó.

D: \ MyApp> Python

Nhập mô -đun chức năng từ gói MyPackage và gọi hàm Power () của nó.

>>> Từ các chức năng nhập mypackage >>> Các chức năng.Power (3,2) 9
>>> functions.power(3,2)
9

Cũng có thể nhập các chức năng cụ thể từ một mô -đun trong gói.

>>> Từ mypackage. không được xác định
>>> sum(10,20)
30
>>> average(10,12)
Traceback (most recent call last):
File "", line 1, in
NameError: name 'average' is not defined

__init__.py

Thư mục gói chứa một tệp đặc biệt có tên __init__.py, lưu trữ nội dung của gói. Nó phục vụ hai mục đích:

  1. Trình thông dịch Python nhận ra một thư mục là gói nếu nó chứa tệp __init__.py.
  2. __init__.py hiển thị các tài nguyên được chỉ định từ các mô -đun của nó sẽ được nhập.

Một tệp __init__.py trống làm cho tất cả các chức năng từ các mô -đun trên có sẵn khi gói này được nhập. Lưu ý rằng __init__.py là điều cần thiết để thư mục được Python nhận ra là một gói. Bạn có thể tùy chọn xác định các chức năng từ các mô -đun riêng lẻ sẽ được cung cấp.

Chúng tôi cũng sẽ tạo một tập lệnh Python khác trong thư mục MyApp và nhập gói MyPackage trong đó. Nó nên ở cùng cấp của gói được nhập.

Tệp __init__.py thường được giữ trống. Tuy nhiên, nó cũng có thể được sử dụng để chọn các chức năng cụ thể từ các mô -đun trong thư mục gói và cung cấp chúng để nhập. Sửa đổi __init__.py như dưới đây:

from .functions import average, power
from .greet import SayHello

Các chức năng được chỉ định hiện có thể được nhập trong phiên phiên dịch hoặc tập lệnh thực thi khác.

Tạo

def sum(x,y):
    return x+y

def average(x,y):
    return (x+y)/2

def power(x,y):
    return x**y
7 trong thư mục MyApp để kiểm tra MyPackage.

from mypackage import power, average, SayHello
SayHello()
x=power(3,2)
print("power(3,2) : ", x)

Lưu ý rằng các chức năng

def sum(x,y):
    return x+y

def average(x,y):
    return (x+y)/2

def power(x,y):
    return x**y
9 và
from .functions import average, power
from .greet import SayHello
0 được nhập từ gói chứ không phải từ các mô -đun tương ứng của chúng, như được thực hiện trước đó. Đầu ra của tập lệnh trên là:

D: \ MyApp> Python Test.Py Hello World Power (3,2): 9
Hello world
power(3,2) : 9

Cài đặt một gói trên toàn cầu

Khi một gói được tạo, nó có thể được cài đặt để sử dụng toàn hệ thống bằng cách chạy tập lệnh thiết lập. Tập lệnh gọi hàm

from .functions import average, power
from .greet import SayHello
1 từ mô -đun
from .functions import average, power
from .greet import SayHello
2.

Hãy cài đặt MyPackage để sử dụng toàn hệ thống bằng cách chạy tập lệnh thiết lập.

Lưu mã sau dưới dạng setup.py trong thư mục cha MyApp. Tập lệnh gọi hàm

from .functions import average, power
from .greet import SayHello
1 từ mô -đun setuptools. Hàm
from .functions import average, power
from .greet import SayHello
1 có nhiều đối số khác nhau như tên, phiên bản, tác giả, danh sách các phụ thuộc, v.v ... Đối số
from .functions import average, power
from .greet import SayHello
6 có xác định xem gói được cài đặt ở chế độ nén hoặc chế độ thông thường hay không.

from setuptools import setup
setup(name='mypackage',
version='0.1',
description='Testing installation of Package',
url='#',
author='auth',
author_email='[email protected]',
license='MIT',
packages=['mypackage'],
zip_safe=False)

Bây giờ thực hiện lệnh sau để cài đặt

from .functions import average, power
from .greet import SayHello
7 bằng tiện ích PIP. Đảm bảo rằng dấu nhắc lệnh nằm trong thư mục cha mẹ, trong trường hợp này là D:\MyApp.

D: \ MyApp> Pip Cài đặt xử lý MyPackage D: \ MyApp Cài đặt các gói được thu thập: MYPACK RUN RUN
Processing d:\MyApp
Installing collected packages: mypack
Running setup.py install for mypack ... done
Successfully installed mypackage-0.1

Bây giờ MyPackage có sẵn để sử dụng toàn hệ thống và có thể được nhập trong bất kỳ tập lệnh hoặc trình thông dịch nào.

D: \> Python >>> Nhập MyPackage >>> MyPackage.Verage (10,20) 15.0 >>> MyPackage.Power (10,2) 100
>>> import mypackage
>>>mypackage.average(10,20)
15.0
>>>mypackage.power(10,2)
100

Bạn cũng có thể muốn xuất bản gói để sử dụng công cộng. PYPI (viết tắt của Gói Python Index) là một kho lưu trữ các gói Python. Truy cập https://packaging.python.org/distributing để biết thêm về quy trình tải gói lên PYPI.

Gói trong Python với ví dụ là gì?

Gói là một thư mục của các mô -đun Python có chứa tệp __init__.py bổ sung, phân biệt một gói với một thư mục được cho là chứa nhiều tập lệnh python.Các gói có thể được lồng đến nhiều độ sâu nếu mỗi thư mục tương ứng chứa tệp __init__.py của riêng nó.a directory of Python modules that contains an additional __init__.py file, which distinguishes a package from a directory that is supposed to contain multiple Python scripts. Packages can be nested to multiple depths if each corresponding directory contains its own __init__.py file.

Các gói được sử dụng trong Python là gì?

10 gói Python hàng đầu vào năm 2021..
NumPy..
pandas..
Matplotlib..
Seaborn..
scikit-learn..
Requests..
urllib3..

Có bao nhiêu gói trong Python?

Có hơn 200.000 gói Python trên thế giới (và đó chỉ là việc đếm các gói được lưu trữ trên Pypi, chỉ số gói Python chính thức).more than 200,000 Python packages in the world (and that's just counting those hosted on PyPI, the official Python Package Index).

Tên gói trong Python là gì?

Một gói Python thường bao gồm một số mô -đun.Về mặt vật lý, một gói là một thư mục chứa các mô -đun và có thể các thư mục khác có thể chứa nhiều thư mục và mô -đun hơn.Về mặt khái niệm, đó là một không gian tên.a folder containing modules and maybe other folders that themselves may contain more folders and modules. Conceptually, it's a namespace.