Mô-đun python được viết như thế nào?

Đây là một ví dụ tối thiểu tuyệt đối, hiển thị các bước cơ bản để chuẩn bị và tải gói của bạn lên PyPI bằng cách sử dụng

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
2 và
.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
3

Điều này không có nghĩa là thay thế cho việc đọc ít nhất là hướng dẫn, có nhiều thứ hơn là được trình bày trong ví dụ rất cơ bản này

Bản thân việc tạo gói đã được bao gồm trong các câu trả lời khác ở đây, vì vậy, hãy giả sử rằng chúng ta có bước đó và cấu trúc dự án của chúng ta như thế này

.
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py

Để sử dụng

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
2 để đóng gói, chúng tôi cần thêm một tệp
.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
5, tệp này sẽ được đưa vào thư mục gốc của dự án của chúng tôi

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py

Ở mức tối thiểu, chúng tôi chỉ định siêu dữ liệu cho gói của mình,

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
5 của chúng tôi sẽ trông như thế này

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='//github.com/bgse/hellostackoverflow'
]

Vì chúng tôi đã đặt

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
7, nên chúng tôi bao gồm một bản sao trong dự án của mình là
.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
8, cùng với tệp readme trong reStructuredText là
.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
9

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
1

Tại thời điểm này, chúng tôi đã sẵn sàng để bắt đầu đóng gói bằng cách sử dụng

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
2, nếu chúng tôi chưa cài đặt nó, chúng tôi có thể cài đặt nó với
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='//github.com/bgse/hellostackoverflow'
]
1

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
4

Để làm điều đó và tạo một

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='//github.com/bgse/hellostackoverflow'
]
2, tại thư mục gốc của dự án, chúng tôi gọi
.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
5 từ dòng lệnh, chỉ định rằng chúng tôi muốn
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='//github.com/bgse/hellostackoverflow'
]
4

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
8

Điều này sẽ tạo gói phân phối và thông tin về trứng của chúng tôi và dẫn đến cấu trúc thư mục như thế này, với gói của chúng tôi trong

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='//github.com/bgse/hellostackoverflow'
]
5

.
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
0

Tại thời điểm này, chúng tôi có một gói mà chúng tôi có thể cài đặt bằng cách sử dụng

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='//github.com/bgse/hellostackoverflow'
]
1, do đó, từ gốc dự án của chúng tôi [giả sử bạn có tất cả cách đặt tên như trong ví dụ này]

.
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
2

Nếu mọi việc suôn sẻ, bây giờ chúng ta có thể mở trình thông dịch Python, tôi sẽ nói ở đâu đó bên ngoài thư mục dự án của chúng ta để tránh mọi nhầm lẫn và thử sử dụng gói mới sáng bóng của chúng ta

.
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
3

Bây giờ chúng tôi đã xác nhận gói cài đặt và hoạt động, chúng tôi có thể tải nó lên PyPI

Vì chúng tôi không muốn làm ô nhiễm kho lưu trữ trực tiếp bằng các thử nghiệm của mình, chúng tôi tạo một tài khoản cho kho lưu trữ thử nghiệm và cài đặt

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
3 cho quá trình tải lên

.
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
5

Bây giờ chúng ta gần như hoàn thành, với tài khoản đã tạo, chúng ta chỉ cần yêu cầu

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
3 tải gói của chúng ta lên, nó sẽ hỏi thông tin đăng nhập của chúng ta và tải gói của chúng ta lên kho lưu trữ được chỉ định

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
0

Giờ đây, chúng tôi có thể đăng nhập vào tài khoản của mình trên kho lưu trữ thử nghiệm PyPI và ngạc nhiên trước gói mới tải lên của chúng tôi trong một lúc, sau đó lấy nó bằng cách sử dụng

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='//github.com/bgse/hellostackoverflow'
]
1

.
├── setup.py
└── hellostackoverflow/
    ├── __init__.py
    └── hellostackoverflow.py
1

Như chúng ta có thể thấy, quy trình cơ bản không phức tạp lắm. Như tôi đã nói trước đó, có rất nhiều điều về nó ngoài những gì được đề cập ở đây, vì vậy hãy tiếp tục và đọc hướng dẫn để được giải thích sâu hơn

Làm thế nào các mô-đun được viết bằng Python?

Có ba cách để định nghĩa một mô-đun trong Python. Một mô-đun có thể được viết bằng chính Python . Một mô-đun có thể được viết bằng C và được tải động trong thời gian chạy, giống như mô-đun re [biểu thức chính quy]. Một mô-đun tích hợp về bản chất được chứa trong trình thông dịch, giống như mô-đun itertools.

Các mô-đun Python có được viết bằng Python không?

Các mô-đun tích hợp được viết bằng C và được tích hợp với trình bao Python . Mỗi mô-đun tích hợp chứa tài nguyên cho các chức năng cụ thể của hệ thống như quản lý hệ điều hành, IO đĩa, v.v. Thư viện chuẩn cũng chứa nhiều tập lệnh Python [với. phần mở rộng py] chứa các tiện ích hữu ích.

Cấu trúc của một mô-đun Python là gì?

Một mô-đun Python là tệp chứa các định nghĩa và câu lệnh Python . Một mô-đun có thể định nghĩa các hàm, lớp và biến. Một mô-đun cũng có thể bao gồm mã có thể chạy được. Nhóm mã liên quan vào một mô-đun giúp mã dễ hiểu và dễ sử dụng hơn.

Mô-đun được tạo như thế nào?

Trong phần cứng máy tính, mô-đun là thành phần được thiết kế để dễ dàng thay thế . Trong phần mềm máy tính, mô-đun là phần mở rộng của chương trình chính dành riêng cho một chức năng cụ thể. Trong lập trình, mô-đun là một phần mã được thêm vào toàn bộ hoặc được thiết kế để dễ dàng sử dụng lại.

Chủ Đề