新しい Python モジュールをパッケージ化する 4 つのステップ
アプリケーションをインストールするときは、通常、アプリケーションの実行可能コードとドキュメント、アイコンなどの重要なファイルを含むソフトウェア パッケージをインストールすることになります。 Linux では、ソフトウェアは通常、RPM や DEB などの形式にパッケージ化されており、ユーザーは、必要に応じて、 dnf
や apt
などのコマンドを使用してインストールできます。使用している Linux ディストリビューションで。ただし、新しい Python モジュールはほぼ毎日リリースされるため、まだパッケージ化されていない Python モジュールに遭遇することは簡単です。これは、 pyp2rpm
の意味です。
最近、 python-concentration
というモジュールをインストールしようとしましたが、進捗があまりスムーズではありませんでした:
$ sudo dnf install python-concentration Updating Subscription Management repositories. Last metadata expiration check: 1:23:32 ago on Sat 11 Jun 2022 06:37:25. No match for argument: python-concentration Error: Unable to find a match: python-concentration
これはリリースされたモジュールですが、 PyPi パッケージに含まれていますが、RPM パッケージにパッケージ化することはできません。幸いなことに、比較的簡単なプロセスで pyp2rpm
を使用して、これを RPM パッケージにパッケージ化できるということです。
最初に 2 つのディレクトリを設定する必要があります:
$ mkdir rpmbuild $ cd rpmbuild && mkdir SPECS
次のようにインストールします pyp2rpm
:
$ sudo dnf install pyp2rpm
1. スペック ファイルを生成します
RPM パッケージの基礎は仕様ファイルです。このファイルには、必要な依存関係、アプリケーションのバージョン番号、インストールされているファイル、その他の情報など、このパッケージの作成に必要なすべての情報が含まれています。 Python モジュールを指定すると、 pyp2rpm
はその仕様ファイルを構築します。これを使用して RPM パッケージを作成できます。
以下では、仕様ファイルの構築方法を示す例として python-concentration
を使用しています:
$ pyp2rpm concentration > ~/rpmbuild/SPECS/concentration.spec
以下は、生成されるファイルです:
# Created by pyp2rpm-3.3.8 %global pypi_name concentration %global pypi_version 1.1.5 Name: python-%{pypi_name} Version:%{pypi_version} Release:1%{?dist} Summary:Get work done when you need to, goof off when you don't License:None URL:None Source0:%{pypi_source} BuildArch:noarch BuildRequires:python3-devel BuildRequires:python3dist(setuptools) %description Concentration [ >= 2.6.1 with python3dist(hug) < 3~~) Requires: python3dist(setuptools) %description -n python3-%{pypi_name} Concentration [ に日付を記録する必要があるようです。
%changelog * Sat Jun 11 2022 Tux <tux@example.com> - 1.1.5-1
もう一度実行 rpmint
:
$ rpmlint ~/rpmbuild/SPEC/concentration.spec 0 packages and 1 specfiles checked; 0 errors, 0 warnings.
成功!
3. ソース コードをダウンロードする
RPM パッケージをさらに構築するには、パッケージ化されたコードをダウンロードする必要があります。簡単な方法は、仕様ファイルを解析してソース コードの URL を取得することです。
まず、#dnf
#を介して#spectool
#をインストールします:
$ sudo dnf install spectool
然后通过 spectool
来下载源码:
$ cd ~/rpmbuild $ spectool -g -R SPEC/concentration.spec Downloading: https://files.pythonhosted.org/...concentration-1.1.5.tar.gz 6.0 KiB / 6.0 KiB[=====================================] Downloaded: concentration-1.1.5.tar.gz
这样就创建了一个 SOURCES
目录并将源码放入其中。
4、构建源软件包
现在你已经验证过 spec 文件了,接下来就可以通过 rpmbuild
构建源软件包了。如果你还没有安装 rpmbuild
,你也可以通过 dnf
安装 rpm-build
包(或者在使用 rpmbuild
命令时根据终端的的提示进行安装)。
参数 -bs
表示构建源软件包。添加这个参数会产生一个 src.rpm 文件,这是一个用于为特定架构重新构建的通用包:
$ rpmbuild -bs SPECS/concentration.spec Wrote: ~/rpmbuild/SRPMS/python-concentration-1.1.5-1.el9.src.rpm
为你的系统构建一个可安装的 RPM 文件:
$ rpmbuild –rebuild SRPMS/python-concentration-1.1.5-1.el9.src.rpm error: Failed build dependencies: python3-devel is needed by python-concentration-1.1.5-1.el9.noarch
看起来这个包需要安装 Python 的开发库才能继续构建。安装它们以继续构建。这一次,构建成功了,并且渲染了更多的输出(为了清楚起见,我在这里简略了输出):
$ sudo dnf install python3-devel -y $ rpmbuild –rebuild SRPMS/python-concentration-1.1.5-1.el9.src.rpm [...] Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.TYA7l2 + umask 022 + cd /home/bogus/rpmbuild/BUILD + rm -rf concentration-1.1.5 + RPM_EC=0 ++ jobs -p + exit 0
你的 RPM 包现在已经构建在 RPMS
子目录下,像平常一样使用 dnf
安装它。
$ sudo dnf install RPMS/noarch/python3-concentration*rpm
为什么不使用 PyPi?
通常情况下我们并不需要将 Python 模块打包成 RPM 包。通过 PyPi 来安装模块也是可以接受的,但是 PyPi 会安装额外的包管理器对你的模块进行检查和更新。当你使用 dnf
来安装 RPM 包时,你在安装完成时就能够获取到完整的安装列表。有了 pyp2rpm
之后,这个过程就变得快速、简单且自动化了。
以上が新しい Python モジュールをパッケージ化する 4 つのステップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonコードをSublimeテキストで実行するには、最初にPythonプラグインをインストールし、次に.pyファイルを作成してコードを書き込み、Ctrl Bを押してコードを実行する必要があります。コードを実行すると、出力がコンソールに表示されます。

Visual Studioコード(VSCODE)でコードを作成するのはシンプルで使いやすいです。 VSCODEをインストールし、プロジェクトの作成、言語の選択、ファイルの作成、コードの書き込み、保存して実行します。 VSCODEの利点には、クロスプラットフォーム、フリーおよびオープンソース、強力な機能、リッチエクステンション、軽量で高速が含まれます。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

GolangとPythonにはそれぞれ独自の利点があります。Golangは高性能と同時プログラミングに適していますが、PythonはデータサイエンスとWeb開発に適しています。 Golangは同時性モデルと効率的なパフォーマンスで知られていますが、Pythonは簡潔な構文とリッチライブラリエコシステムで知られています。
