問題タブ [pkg-resources]
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 Egg 自身のメタデータへのアクセス
setuptools を使用して Python の卵を作成しましたが、実行時にそのメタデータにアクセスしたいと考えています。私は現在これに取り組んでいます:
しかし、同じ卵の複数のバージョンがインストールされている場合、これはおそらく正しく機能しません。そして、卵と開発バージョンの両方をインストールした場合、このコードを開発バージョンから実行すると、インストールされた卵のバージョンが取得されます。
では、システムにインストールされたランダムに一致する卵ではなく、卵のメタデータを取得するにはどうすればよいですか?
python - 1 つの場所で複数のプラットフォームの Python の卵を処理するにはどうすればよいですか?
すべてのシステムに同じ Python がインストールされていることを確認し、構成の問題を軽減するために、すべてのシステムに共通の Python をインストールしています。このインストールは共有ドライブにあります。このインストールを共有する複数のプラットフォームもあります。Python のコンパイル時に --exec-prefix 構成オプションを設定することで、競合するプラットフォーム固有のファイルを回避します。
私の問題は、プラットフォームに依存する easy_install (またはそれ以外) を使用して卵をインストールしたいということです。easy_install は、インストールのプラットフォームに依存しない部分の site-packages ディレクトリに卵を置きます。卵の名前にはプラットフォームが含まれているため、競合はありません。しかし、python は最初に見つけたものだけをロードします。(そのため、Solaris では Linux Egg をロードしようとする場合があります)。easy-install.pth ファイルを変更すると、検出されるファイルが変更される可能性がありますが、それはほとんど役に立ちません。
.egg ファイルをプラットフォームに依存するパッケージ ディレクトリに移動し、pkg_resources.require() を使用してそれらをロードします (または手動でパスを調整します)。しかし、プラットフォームは卵の名前になっているので、そうする必要はないようです。
Pythonが正しいプラットフォームの卵をロードすることを保証できる、より一般的な方法はありますか?
python - setuptoolsのインストール後にpkg_resourcesが見つかりません
Debian 5.0.3(64ビット)にpython2.6.4をコンパイルしてインストールしようとしています。デフォルトのPythonとしてDeb5.0に付属しているPython2.5.2を維持したいので、「makealtinstall」を使用してインストールしました。
これに続いて、コマンド「sudo sh setuptools-0.6c11-py2.6.egg --prefix = / usr/local」を使用してsetuptools0.6c11をインストールしました。ただし、python2.6から「pkg_resourcesをインポート」しようとするとインストールした後、「ImportError:pkg_resourcesという名前のモジュールがありません」と表示されません。pkg_resourcesがなければ、私はほとんど何もできません。
誰かがここで何がうまくいかないのか、何が欠けているのかを共有できますか?
python - pkg_resources を使用する場合、ユニバーサル改行モードでファイルを開きますか?
私は CSV ファイルを処理しており、次の作業コードがあります。
ただし、コードベースの他の場所と互換性を持たせるには、pkg_resources.resource_stream
次のようにを使用してファイル オブジェクトを使用する必要があります。
(ここでは単純化しています。基本的に、csv.reader
コードは私が制御できない関数内にあり、fileobj
.
これにより、次のエラーがスローされます。
でユニバーサル改行モードを使用する方法はありますfileobj
か? ドキュメントにはこれについて何も表示されませんpkg_resources
。
ありがとう。
python - pylintはpkg_resources.resource_filenameが好きではありません
私のスクリプトでは、次を使用します。
python
from pkg_resources import resource_filename
PyDevとpylint0.23はどちらも、ここで未解決のインポートについて不平を言っています。
E0611 No name 'resource_filename' in module 'pkg_resources'
私が理解しているように、これは、PyDevとpylintの両方が、実際に解析/コンパイルを試みることなく、ソースコード分析のみを実行するという事実が原因で発生します。そしてどうやらpkg_resources
を定義するために何か特別なことをしますpkg_resources
。パッケージとシンボルはもちろんそこにあり、すべてがうまく機能します。2つの質問:
- EclipseとPyDevの両方に、それらが間違っていることをどのように納得させることができますか?
- そもそも何が問題の原因ですか?私は他の人がこの種の問題を抱えているのを見つけていません、そして私は私の状況がいくぶん独特であるとは思えません... :)
Python 2.7.1(OSXで)、0.6.19を配布します。
macos - LionOSXの.pkgファイルのカスタムアイコン
PackageMakerを使用してパッケージを作成しましたが、.pkgファイルのデフォルトアイコンを変更したいと思います。グーグルした後、ここhttp://sveinbjorn.org/osxutils_docsのseticonユーティリティは、最新のLion 10.7(カーネル11.0.0)を除くすべてのOSX-esの問題を解決しました。デフォルトのアイコンは、ダブルクリックに対して鈍感な灰色の四角に置き換えられました。ファイルの関連付けが壊れているように見えます。
さらに2日間グーグルすると、リソースフォーク、SetFile(1)、およびこの古いスレッドのような他の便利なスタッフについての知識が得られました。パッケージメーカーによって作成されたパッケージのアイコンを変更しましたが、まだ運がありません。
私は次のようなことをしようとしています:
target = pack.pkg
icon_filename = "$(perl-e'print"アイコン\r"')"
「$target/ .. namedfork / rsrc /$icon_filename」をタッチします
cp "Icon.icns" "$ target / .. namedfork / rsrc / $ icon_filename"
/ Developer / Tools / SetFile -a C "$ target"
そして取得:build-Mac:pack.pkg / ..namedfork/ディレクトリではありません。
私は何が間違っているのですか?Lionのリソースフォークの違いを教えてもらえますか?他のスクリプト可能なソリューションはありますか?
私はMACの完全な初心者であり、ダミーの詳細な回答をいただければ幸いです。
python - pkg_resources を使用してパッケージ バージョンを取得しますか?
$PYTHONPATH または sys.path でパッケージのパッケージ バージョンを取得するための推奨される方法は何ですか? pkg_resource モジュールにはこのための機能がいくつかあることを覚えていますが、関連する情報が見つかりません。version.py ファイルを使用して何らかの方法で読み取るソリューションを私に指摘しないでください。pkg_resources を使用するのがよい方法ですが、具体的にはどうすればよいでしょうか?
python - python : pkg_resources を使用した実行時の複数のライブラリ バージョン (pkg_resources.VersionConflict エラー)
同じ python スクリプト内から同じライブラリ (easy_install --multi-version でインストール) の 2 つの異なるリリースを使用しようとしています。一般的な考え方を以下のコードに示します。
各バージョンを個別に呼び出すと、すべて問題ありません。あるバージョンを呼び出してから別のバージョンを呼び出したい場合、VersionConflict エラーが発生します。
他のディストリビューションをロードする前に、ワーキング セットから以前のディストリビューションを「アンロード」する方法が必要ですが、pkg_resources マニュアルを読むといつも迷子になるようです。
誰でもこれについて正しい方法を教えてもらえますか? どうもありがとう。
python - pkg_resources を使用して現在のディストリビューションから python パッケージ リソースをロードするにはどうすればよいですか?
次のようなリソースとして含めたいくつかのcssスタイルシートを含むPythonパッケージがあります。
これらの含まれているリソースの 1 つを文字列としてロードしたいと思います。現在のパッケージからリソースをロードする最良の方法は何ですか?
pkg_resources.Distribution
オブジェクトにメソッドがあることがわかりましたが、これを使用する方法に行き詰まっています:現在のパッケージのオブジェクトget_resource_string()
を取得するにはどうすればよいですか?Distribution