問題タブ [distutils]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python distutils の使用方法
gtk GUI を cli プログラムに追加するための簡単なプログラムを Python で作成しました。distutils を使用してインストーラーを作成する方法を考えていました。これは単なるコマンド ライン アプリの GUI フロントエンドであるため、とにかく *nix でのみ動作するため、クロス プラットフォームであることは心配していません。
私の主な目標は、debian/ubuntu ユーザー向けの .deb パッケージを作成することですが、make/configure ファイルがわかりません。私は今まで主に Web 開発者でした。
edit : distutils を使っているプロジェクトを知っている人はいますか?
ここにいくつかの便利なリンクがあります
-
このガイドは非常に役に立ちます。グーリングの最初の波の間に、どうしてそれを逃したのかわかりません。さらに、既存の Python アプリケーションをパッケージ化する方法についても説明します
-
これは、ubuntu の公式パッケージ メンテナンス プロジェクトです。どなたでも参加できます。また、上記の「python パッケージング ガイド」を含む、あらゆる種類のパッケージの作成に関する多くのチュートリアルと情報があります。
「Python distutils から deb へ?」- Ars Technica フォーラムのディスカッション
この会話によると、distutils だけを使用することはできません。Debian パッケージ形式 (またはそのようなもの) には従いません。Ubuntu Packaging guide に見られるように、それが dh_make が必要な理由だと思います
-
This oneには、zipファイルとシェルスクリプトを連結してある種のユニバーサル実行可能ファイル(pythonとbashを含むもの)を作成することについて、いくつかの興味深い議論があります(ubuntuガイドを見つけた方法でもあります)。変。聞いたことがないので、誰かがこの慣行についてもっと情報を見つけたら教えてください。
python - Python モジュールの配布でファイルを見つける
より時間のかかる計算の 1 つについて、事前に計算された値の bsddb データベースを含む Python パッケージを作成しました。簡単にするために、セットアップ スクリプトは、データベースにアクセスするコードと同じディレクトリにデータベース ファイルをインストールします (Unix では、/usr/lib/python2.5/site-packages/mypackage/ など)。
コードがアクセスできるように、データベース ファイルの最終的な場所を保存するにはどうすればよいですか? __file__
現在、データベースにアクセスするモジュールの変数に基づくハックを使用しています。
動作しますが、どうやら... ハックっぽいです。これを行うより良い方法はありますか?セットアップ スクリプトで、distutils モジュールから最終的なインストール場所を取得し、データベースにアクセスするコードと一緒にインストールされる "dbconfig.py" ファイルに詰め込みます。
python - distutils は空の __init__.py ファイルを作成できますか?
すべての__init__.py
ファイルが空の場合、それらをバージョン管理に保存する必要がありますか? または、インストール中にdistutils
空のファイルを作成する方法はありますか?__init__.py
python - インストール後のスクリプトを easy_install / setuptools / distutils に追加するにはどうすればよいですか?
インストール後に実行される setup.py にフックを追加できるようにしたいと思います (easy_install'ing または python setup.py install を実行するとき)。
私のプロジェクトPySmellには、Vim と Emacs のサポート ファイルがいくつかあります。ユーザーが通常の方法で PySmell をインストールすると、これらのファイルが実際の卵にコピーされるため、ユーザーはそれらを取り出して自分の .vim または .emacs ディレクトリに配置する必要があります。私が欲しいのは、インストール後にユーザーに、これらのファイルをどこにコピーするかを尋ねるか、ファイルの場所とファイルをどうするかを表示するメッセージだけです。
これを行う最善の方法は何ですか?
ありがとう
私の setup.py は次のようになります。
編集:
以下は、以下を示すスタブpython setup.py install
です。
easy_install ルートはまだ成功していません。
python - Python Distutils
Distutilsの厳格なバージョン番号クラスのため、cythonをインストールできませんでした。たとえば、binutils-2.18.50-20080109-2.tar.gz をMinGWと共に使用してcython をインストールすることはできません。ソース コードのドキュメントには、「このバージョン番号付けシステムの理論的根拠は、distutils のドキュメントで説明されます」と記載されています。私はその根拠を見つけることができません。
私の質問: このバージョン番号付けシステムの理論的根拠は何ですか?
python - distutils を使用して Python 拡張モジュールをインストールするにはどうすればよいですか?
私は、C で書かれた一連の拡張モジュールを含む「lehmer」という名前の Python パッケージに取り組んでいます。現在、単一の拡張モジュール「rng」があります。モジュールのビルドとインストールに Python の Distutils を使用しています。import lehmer.rng
モジュールをコンパイルしてインストールできますが、またはを使用してモジュールをインポートしようとするとfrom lehmer import rng
、Python インタープリターがImportError
例外をスローします。「lehmer」を正常にインポートできます。
私のsetup.py
ファイルの内容は次のとおりです。
Python のsite-packages
ディレクトリの内容を一覧表示すると、次のように表示されます。
私のPYTHONPATH
環境変数は正しく設定されているので、それは問題ではありません (また、前に述べたように、私は問題なく動作するので、それが問題ではないimport lehmer
ことはわかってPYTHONPATH
います)。Python は次の検索パスを使用します (報告によるとsys.path
):
アップデート
OpenSUSE 10 ボックスで使用すると機能しますが、Mac OS X でテストした場合、C 拡張機能はまだロードできません。Python インタープリターの結果は次のとおりです。
python - Pythonライブラリのパッケージ化
Autonomyデータベースからの統計を報告するMuninプラグインがいくつかあります。それらはすべて、関連する番号のXMLステータス出力をスクレイプする小さなライブラリを使用します。
ライブラリとプラグインをPuppetでインストール可能なRPMにバンドルしようとしています。実際のRPM構築は簡単である必要があります。生成されたdistutils
distfileを取得したら、DagまたはEPELリポジトリからピンチされた.specファイルに基づいてRPMにすることができます[1]。それはdistutils
私が確信していないビットです-実際、私のライブラリがパッケージング用に正しく記述されているかどうかさえわかりません。仕組みは次のとおりです。
idol7stats.py:
プラグインコード:
idol7stats.pyを/usr/lib/python2.4/site-packages/idol7stats
、またはPythonの検索パスにある他の何かに終わらせたいと思います。どんなdistutils
魔法が必要ですか?これ:
コードがサブディレクトリではなく、に入る以外は、ほとんど機能します/usr/lib/python2.4/site-packages/idol7stats.py
。これは、Pythonのモジュール/パッケージ/その他のコンテナーの違いを理解していないことが原因だと思います。
それで、摩擦は何ですか?
[1]ええ、/usr/lib/python2.4/site-packages
RPMを使用してライブラリを操作することもできますが、Pythonコードをパッケージ化する方法を知りたいです。
python - Python デーモンのパッケージ化のベスト プラクティス
Python で作成したツールがあり、通常はデーモンとして実行する必要があります。このツールを配布用にパッケージ化するためのベスト プラクティスは何ですか?特に、設定ファイルとデーモンの実行可能ファイル/スクリプトをどのように処理する必要がありますか?
関連して、特定のプラットフォーム (つまり、Linux のinitスクリプト、Windows のサービス、OS Xのlaunchd ) に応じて起動時に実行するデーモンをセットアップするための一般的なツールはありますか?
python - VS2005 を使用して、VS2003 で構築された Python システムの拡張機能を構築できますか?
RDFLibを ActiveState Python 2.5 にインストールするには、C 拡張機能をコンパイルする必要があります。私が知る限り、Web 上で明らかなバイナリ インストーラはどこにもありません。でインストールしようとするとpython setup.py install
、次のメッセージが表示されます。
error: Python was built with Visual Studio 2003;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2003 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.
Distutils 用のコンパイラの構成に関するさまざまな リソースがウェブ上にあり、MinGW の使用について説明していますが、私はまだこれを機能させていません。別の方法として、VS2005 を使用しています。
VS2005 で C コンパイラを使用して、VS2003 でコンパイルされた Python (この場合は ActiveState Python 2.5) 用の Python 拡張モジュールをビルドできるかどうか、誰でも断言できますか。これが可能な場合、どのような構成が必要ですか?
python - SVN と distutils を使用して Python パッケージのバージョン番号を割り当てるにはどうすればよいですか?
私はPythonパッケージを書いています。パッケージは、そのバージョン番号を内部的に認識している必要があります。また、このバージョンを のsetup.py
スクリプトに含める必要がありますdistutils
。
バージョン番号を2つの別々の場所で維持する必要がないように、これを行う最良の方法は何ですか? ライブラリの残りの部分からスクリプトをインポートしたくありませんsetup.py
(これはばかげているようです)。また、スクリプトからライブラリをインポートしたくありませんsetup.py
(同様に)。理想的には、キーワードを設定するだけで、svn
それが自動的にファイルに置き換えられますが、それは では不可能のようですsvn
。両方の場所でバージョン番号を含む共通のテキスト ファイルを読み取ることができましたが、これが最善の解決策でしょうか?
明確にするために: バージョン番号を1か所で管理したい。はい、変数をパッケージに入れ、さらにsetup.py
ファイルに入れることができました。しかし、その後、必然的に同期が外れます。