問題タブ [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.

0 投票する
5 に答える
10813 参照

python - Python distutils の使用方法

gtk GUI を cli プログラムに追加するための簡単なプログラムを Python で作成しました。distutils を使用してインストーラーを作成する方法を考えていました。これは単なるコマンド ライン アプリの GUI フロントエンドであるため、とにかく *nix でのみ動作するため、クロス プラットフォームであることは心配していません。

私の主な目標は、debian/ubuntu ユーザー向けの .deb パッケージを作成することですが、make/configure ファイルがわかりません。私は今まで主に Web 開発者でした。

edit : distutils を使っているプロジェクトを知っている人はいますか?

ここにいくつかの便利なリンクがあります

  • Ubuntu Python パッケージ ガイド

    このガイドは非常に役に立ちます。グーリングの最初の波の間に、どうしてそれを逃したのかわかりません。さらに、既存の Python アプリケーションをパッケージ化する方法についても説明します

  • Ubuntu MOTU プロジェクト

    これは、ubuntu の公式パッケージ メンテナンス プロジェクトです。どなたでも参加できます。また、上記の「python パッケージング ガイド」を含む、あらゆる種類のパッケージの作成に関する多くのチュートリアルと情報があります。

  • 「Python distutils から deb へ?」- Ars Technica フォーラムのディスカッション

    この会話によると、distutils だけを使用することはできません。Debian パッケージ形式 (またはそのようなもの) には従いません。Ubuntu Packaging guide に見られるように、それが dh_make が必要な理由だと思います

  • "distutils の bdist_deb コマンド

    This oneには、zipファイルとシェルスクリプトを連結してある種のユニバーサル実行可能ファイル(pythonとbashを含むもの)を作成することについて、いくつかの興味深い議論があります(ubuntuガイドを見つけた方法でもあります)。変。聞いたことがないので、誰かがこの慣行についてもっと情報を見つけたら教えてください。

  • deb 形式の説明と distutils の適合方法 - python メーリング リスト

0 投票する
4 に答える
27896 参照

python - Python モジュールの配布でファイルを見つける

より時間のかかる計算の 1 つについて、事前に計算された値の bsddb データベースを含む Python パッケージを作成しました。簡単にするために、セットアップ スクリプトは、データベースにアクセスするコードと同じディレクトリにデータベース ファイルをインストールします (Unix では、/usr/lib/python2.5/site-packages/mypackage/ など)。

コードがアクセスできるように、データベース ファイルの最終的な場所を保存するにはどうすればよいですか? __file__現在、データベースにアクセスするモジュールの変数に基づくハックを使用しています。

動作しますが、どうやら... ハックっぽいです。これを行うより良い方法はありますか?セットアップ スクリプトで、distutils モジュールから最終的なインストール場所を取得し、データベースにアクセスするコードと一緒にインストールされる "dbconfig.py" ファイルに詰め込みます。

0 投票する
2 に答える
1546 参照

python - distutils は空の __init__.py ファイルを作成できますか?

すべての__init__.pyファイルが空の場合、それらをバージョン管理に保存する必要がありますか? または、インストール中にdistutils空のファイルを作成する方法はありますか?__init__.py

0 投票する
2 に答える
10359 参照

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 ルートはまだ成功していません。

0 投票する
3 に答える
801 参照

python - Python Distutils

Distutilsの厳格なバージョン番号クラスのため、cythonをインストールできませんでした。たとえば、binutils-2.18.50-20080109-2.tar.gz をMinGWと共に使用してcython をインストールすることはできません。ソース コードのドキュメントには、「このバージョン番号付けシステムの理論的根拠は、distutils のドキュメントで説明されます」と記載されています。私はその根拠を見つけることができません。

私の質問: このバージョン番号付けシステムの理論的根拠は何ですか?

0 投票する
1 に答える
3566 参照

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 インタープリターの結果は次のとおりです。

0 投票する
1 に答える
543 参照

python - Pythonライブラリのパッケージ化

Autonomyデータベースからの統計を報告するMuninプラグインがいくつかあります。それらはすべて、関連する番号のXMLステータス出力をスクレイプする小さなライブラリを使用します。

ライブラリとプラグインをPuppetでインストール可能なRPMにバンドルしようとしています。実際のRPM構築は簡単である必要があります。生成されたdistutilsdistfileを取得したら、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-packagesRPMを使用してライブラリを操作することもできますが、Pythonコードをパッケージ化する方法を知りたいです。

0 投票する
10 に答える
16575 参照

python - Python デーモンのパッケージ化のベスト プラクティス

Python で作成したツールがあり、通常はデーモンとして実行する必要があります。このツールを配布用にパッケージ化するためのベスト プラクティスは何ですか?特に、設定ファイルとデーモンの実行可能ファイル/スクリプトをどのように処理する必要がありますか?

関連して、特定のプラットフォーム (つまり、Linux のinitスクリプト、Windows のサービス、OS Xのlaunchd ) に応じて起動時に実行するデーモンをセットアップするための一般的なツールはありますか?

0 投票する
3 に答える
1501 参照

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 拡張モジュールをビルドできるかどうか、誰でも断言できますか。これが可能な場合、どのような構成が必要ですか?

0 投票する
4 に答える
986 参照

python - SVN と distutils を使用して Python パッケージのバージョン番号を割り当てるにはどうすればよいですか?

私はPythonパッケージを書いています。パッケージは、そのバージョン番号を内部的に認識している必要があります。また、このバージョンを のsetup.pyスクリプトに含める必要がありますdistutils

バージョン番号を2つの別々の場所で維持する必要がないように、これを行う最良の方法は何ですか? ライブラリの残りの部分からスクリプトをインポートしたくありませんsetup.py(これはばかげているようです)。また、スクリプトからライブラリをインポートしたくありませんsetup.py(同様に)。理想的には、キーワードを設定するだけで、svnそれが自動的にファイルに置き換えられますが、それは では不可能のようですsvn。両方の場所でバージョン番号を含む共通のテキスト ファイルを読み取ることができましたが、これが最善の解決策でしょうか?

明確にするために: バージョン番号を1か所で管理したい。はい、変数をパッケージに入れ、さらにsetup.pyファイルに入れることができました。しかし、その後、必然的に同期が外れます。