Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan ungkapan biasa Python untuk pembungkusan dan pengedaran kod

Cara menggunakan ungkapan biasa Python untuk pembungkusan dan pengedaran kod

WBOY
WBOYasal
2023-06-23 09:31:52782semak imbas

Dengan semakin popularnya bahasa pengaturcaraan Python, semakin ramai pembangun mula menggunakan Python untuk menulis kod. Tetapi dalam penggunaan sebenar, kita selalunya perlu membungkus kod ini dan mengedarkannya kepada orang lain untuk digunakan. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk pembungkusan dan pengedaran kod.

1. Pembungkusan kod Python

Dalam Python, kami boleh menggunakan alatan seperti setuptools dan distutils untuk membungkus kod kami. Alat ini boleh membungkus fail Python, modul, perpustakaan, dll. ke dalam fail boleh laku atau telur Python (format pembungkusan standard Python).

Sebelum membungkus kod Python, kita perlu membuat persediaan berikut:

1.

2 Tulis fail setup.py, yang mengandungi maklumat pembungkusan kod.

Dalam fail setup.py, kami boleh menentukan nama, nombor versi, pengarang, kebergantungan dan maklumat lain kod. Ungkapan biasa boleh membantu kami mencari dan menggantikan kod dengan cepat.

Berikut ialah contoh fail setup.py:

from setuptools import setup, find_packages

setup(
    name='my_package',
    version='1.0.0',
    author='John Doe',
    author_email='john_doe@example.com',
    packages=find_packages(),
    install_requires=['numpy'],
)

Dalam fail setup.py ini, kami menggunakan alat setuptools dan menentukan nama kod sebagai my_package dan nombor versi sebagai 1.0 .0 , pengarang ialah John Doe, e-mel pengarang ialah john_doe@example.com, dan kebergantungan adalah numpy. Pada masa yang sama, kami menggunakan fungsi find_packages() untuk mencari semua pakej secara automatik (iaitu modul Python).

Seterusnya, kita boleh menggunakan arahan berikut untuk membungkus kod:

python setup.py sdist

Arahan ini akan menjana pakej termampat format tar.gz dalam direktori dist, yang mengandungi Kod Python dan persediaan kami. fail py. Pada ketika ini, kami telah berjaya membungkus kod tersebut.

2. Pengedaran kod Python

Setelah kami membungkus kod ke dalam pakej termampat, kami boleh mengedarkannya kepada orang lain untuk digunakan. Tetapi sebelum pengedaran, kita perlu menandatangani pakej termampat untuk memastikan integriti dan keselamatan kod.

Dalam Python, kita boleh menggunakan alatan seperti gpg untuk menandatangani. Alat ini boleh menjana fail tandatangan digital yang boleh digunakan untuk mengesahkan ketulenan dan integriti kod.

Seterusnya, kami boleh membungkus pakej termampat dan fail tandatangan digital bersama-sama dan memuat naiknya ke pelayan atau saluran pengedaran lain. Orang lain boleh mengesahkan ketulenan dan integriti kod dengan memuat turun pakej termampat dan fail tandatangan digital.

Dalam kandungan berikut, kami akan menggunakan ungkapan biasa untuk melaksanakan tandatangan automatik dan muat naik automatik kod Python.

3. Secara automatik menandatangani kod Python

Dalam Python, kita boleh menggunakan modul seperti os dan subproses untuk melaksanakan arahan luaran. Digabungkan dengan ungkapan biasa, kami boleh mencapai tandatangan automatik kod Python.

Berikut ialah contoh fail sign.py:

import os
import re
import subprocess

# 获取当前目录下的所有Python文件
python_files = [f for f in os.listdir('.') if f.endswith('.py')]

# 对每个Python文件进行签名
for f in python_files:
    # 使用gpg签名文件
    subprocess.run(['gpg', '--detach-sign', f])

Dalam fail sign.py ini, kami mula-mula menggunakan modul os untuk mendapatkan semua fail Python dalam direktori semasa. Seterusnya, untuk setiap fail Python, kami melaksanakan perintah gpg --detach-sign menggunakan modul subproses dan menandatangani fail sebagai parameter.

Dengan cara ini, kami boleh menandatangani kod Python secara automatik. Tetapi selepas menandatangani, kami masih perlu memuat naik kod.

4. Muat naik kod Python secara automatik

Dalam Python, kami boleh menggunakan modul seperti ftplib untuk menyambung ke pelayan FTP dan memuat naik fail ke pelayan. Digabungkan dengan ungkapan biasa, kami boleh mencapai muat naik automatik kod Python.

Berikut ialah contoh fail upload.py:

import os
import re
from ftplib import FTP

# 获取当前目录下的所有Python文件
python_files = [f for f in os.listdir('.') if f.endswith('.py')]

# 建立FTP连接
ftp = FTP('ftp.example.com')
ftp.login('username', 'password')
ftp.cwd('/remote/directory')

# 对于每个Python文件,上传其压缩包和数字签名文件
for f in python_files:
    # 获取压缩包和数字签名文件
    tarball = f.replace('.py', '.tar.gz')
    signature = f.replace('.py', '.tar.gz.sig')
    # 上传文件
    with open(tarball, 'rb') as fobj:
        ftp.storbinary('STOR ' + tarball, fobj)
    with open(signature, 'rb') as fobj:
        ftp.storbinary('STOR ' + signature, fobj)

# 关闭FTP连接
ftp.quit()

Dalam fail upload.py ini, kami mula-mula menggunakan modul os untuk mendapatkan semua fail Python dalam direktori semasa. Seterusnya, kami mewujudkan sambungan FTP menggunakan modul ftplib dan memasuki direktori jauh. Untuk setiap fail Python, kami memuat naik pakej termampat dan fail tandatangan digital masing-masing.

Dengan cara ini, kami boleh menandatangani secara automatik dan memuat naik kod Python secara automatik.

5. Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan ungkapan biasa Python untuk pembungkusan dan pengedaran kod. Melalui pembungkusan, kami boleh membungkus kod Python ke dalam fail boleh laku atau telur Python untuk pengedaran mudah. Melalui pengedaran, kami boleh memuat naik kod Python ke pelayan atau saluran pengedaran lain supaya orang lain boleh memuat turun dan menggunakannya dengan mudah. Digabungkan dengan ungkapan biasa, kami juga melaksanakan tandatangan automatik dan muat naik automatik kod Python, meningkatkan kecekapan kerja dan keselamatan kod.

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk pembungkusan dan pengedaran kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn