アプリケーションをインストールするときは、通常、アプリケーションの実行可能コードとドキュメント、アイコンなどの重要なファイルを含むソフトウェア パッケージをインストールすることになります。 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 サイトの他の関連記事を参照してください。

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

PythonとCは、メモリ管理と制御に大きな違いがあります。 1。Pythonは、参照カウントとガベージコレクションに基づいて自動メモリ管理を使用し、プログラマーの作業を簡素化します。 2.Cには、メモリの手動管理が必要であり、より多くの制御を提供しますが、複雑さとエラーのリスクが増加します。どの言語を選択するかは、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

科学コンピューティングにおけるPythonのアプリケーションには、データ分析、機械学習、数値シミュレーション、視覚化が含まれます。 1.numpyは、効率的な多次元配列と数学的関数を提供します。 2。ScipyはNumpy機能を拡張し、最適化と線形代数ツールを提供します。 3. Pandasは、データ処理と分析に使用されます。 4.matplotlibは、さまざまなグラフと視覚的な結果を生成するために使用されます。

PythonまたはCを選択するかどうかは、プロジェクトの要件に依存するかどうかは次のとおりです。1)Pythonは、簡潔な構文とリッチライブラリのため、迅速な発展、データサイエンス、スクリプトに適しています。 2)Cは、コンピレーションと手動メモリ管理のため、システムプログラミングやゲーム開発など、高性能および基礎となる制御を必要とするシナリオに適しています。

Pythonは、データサイエンスと機械学習で広く使用されており、主にそのシンプルさと強力なライブラリエコシステムに依存しています。 1)Pandasはデータ処理と分析に使用され、2)Numpyが効率的な数値計算を提供し、3)SCIKIT-LEARNは機械学習モデルの構築と最適化に使用されます。これらのライブラリは、Pythonをデータサイエンスと機械学習に理想的なツールにします。

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Web開発におけるPythonの主要なアプリケーションには、DjangoおよびFlaskフレームワークの使用、API開発、データ分析と視覚化、機械学習とAI、およびパフォーマンスの最適化が含まれます。 1。DjangoandFlask Framework:Djangoは、複雑な用途の迅速な発展に適しており、Flaskは小規模または高度にカスタマイズされたプロジェクトに適しています。 2。API開発:フラスコまたはdjangorestFrameworkを使用して、Restfulapiを構築します。 3。データ分析と視覚化:Pythonを使用してデータを処理し、Webインターフェイスを介して表示します。 4。機械学習とAI:Pythonは、インテリジェントWebアプリケーションを構築するために使用されます。 5。パフォーマンスの最適化:非同期プログラミング、キャッシュ、コードを通じて最適化

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
