問題タブ [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 - なぜ「virtualenv」が「pkg_resources」を見つけられないのですか?
Ubuntu で virtualenv を使用して、ローカルの仮想 Python 環境をインストールしようとしています。シェルコマンドを実行すると:
インポートできないという例外がスローされますpkg_resources
。しかし、Python シェルを開くとfrom pkg_resources import load_entry_point
正常に動作します。参考までに、完全なスタック トレースを以下に示します。
ここで提案された解決策を試しましたhttps://stackoverflow.com/a/10538412/42897しかし、効果はありませんでした。
python - pkg_resources.DistributionNotFound:pyramid == 1.3a7
そのため、数日前、ピラミッドを使用してDjangoを起動し、スキルセットの外でWebマジックを実行しようとして、多くの重要なことを台無しにしてしまいました。しばらくの間、Pythonを実行することすらできませんでした。システム変数PYTHONHOMEを変更することで、これを修正することになりました。
今、私はpserveで問題に直面しています。pserve development.ini --reloadを実行すると、トレースバックが発生します。
何を探すべきかについての提案はありますか?私にはすべてを実行できる2人の友人がいるので、比較する必要があるものがあれば、それを実行できます。
ありがとうございました!
python - pkg_resources.find_distributions( "/ dirpath with sdist zip file")
pkg_resources.find_distributions( "/ dirpath with sdist zip file")から配布情報を取得できないようです。
誰かが私に光を当てることができますか?
python - 卵の中からPythonの卵のファイルにアクセスする
質問は、それを行う方法について正確な指示を得ようとする試みです。完全な解決策ではないように思われる以前の試みはほとんどありませんでした:
get_distribution によるメタ情報へのアクセス
当面のタスクは、プログラムが実行されている卵に関する情報を読み取ることです。私が理解しているように、いくつかの方法があります:
卵の場所をハードコーディングし、それをzipアーカイブとして扱います - ファイルが別の場所に移動された場合に編集して再コンパイルする必要があるため、機能しますが、十分な柔軟性はありません
使用
ResourceManager().resource_filename(__name__, filename)
- これは、卵の中にあるがパッケージの中にはないファイルにアクセスできないという事実で制限されているようです。ファイル名の「../../EGG-INFO/PKG-INFO」のような表記は、KeyError を与えて機能しません。だからもったいない。distオブジェクトを使用
dist = pkg_resources.get_distribution("dist_name")
してから情報を取得しますが、ドキュメントからはディストリビューション名を指定する方法を理解できませんか? 見つからない。
だから、私はpkg_resources.get_distribution
プラスの使用に関する正しい解決策を探しています。卵の中から任意のファイルを読み取るための完全な解決策が最終的にあればいいのにと思います。
ありがとう!
python - pkg_resourcesにresource_filenameを実装する方法は?
ディストリビュート0.6.35pkg_resource
が提供するパッケージをインポートするパッケージを作成しました。組み込みデータのパスを取得するためにインポートする必要があるため、インポートします。ただし、はpython3に組み込まれていないため、インストールする必要があります。これについて、2つの質問があります。pkg_resource
resource_filename
pkg_resource
Python3が
pkg_resource
公式ディストリビューションで提供されていないのはなぜですか?pkg_resource
これは、非推奨であるか、組み込みPython3
の代替パッケージがあることを意味しますか?pkg_resource
Python3にの代替パッケージがない場合、組み込みライブラリを使用し
pkg_resource
て独自のバージョンを作成するにはどうすればよいresource_filename
ですか?簡単ですか?
ありがとう!
python - python:実行時に追加の要件を確認する方法は?
メインアプリケーションには、ユーザーが有効にできる追加機能がいくつかあります。これらの機能は、独自のディレクトリにあります。これらの機能には、追加の依存関係が必要になる場合があります。requires.txt
それらをそこにファイルに入れることを検討しています。実行時に、機能が壊れるかどうかを人々に知らせたいと考えています。現在、次のようなことを検討しています。
これは、物事を行うための正しい、パイソン的な方法ですか? これは理にかなっていますか?
小さな更新:なぜそれほど複雑でtry: import ... except ImportError: ...
、1つの回答で提案されているのと同じではないのですか:
- 私たちのプラグインには、たくさんの依存関係があるかもしれません。以下のような実際のコードを作成するのは非常に冗長です。
- 一部のプラグインでは、特定のバージョンのパッケージが必要になる場合があります。パッケージ固有のテストまたは
pkg_resources
とにかく使用する必要があるテスト。そのため、上記の私のアイデアでは pkg_resources を使用しています。 - 実行可能なプラグインの単体テストを実行したいと考えています。単体テストで ImportError を処理するのは良くありません。関数
can_we_unit_test_this_plugin(plugin)
があると、物事が簡単になります。
2 番目の更新:extra_require
ではどうsetup.py
ですか?
- 人々はそれらを頻繁にインストールするのを逃します。わかりました、悪い言い訳です。
- 私のビジョンは、個々の機能の個々のサブディレクトリで上記から直接
setup.py
ロードすることです。しかし、それは本当に次のステップです。extra_require
requires.txt
python - Python:パッケージ内のファイルへの書き込み?
この一般的な構造を使用すると、次のようになります。
名前のリストを に保存するスクリプトがあるclient.log
ので、そのリストにアクセスしたり、モジュールを実行したりする必要があるたびに、そのリストを再初期化する必要はありません。でこの構造をセットアップする前は、ログを明示的なパスで更新してpkg_resources
いopen('.../data/client.log', 'w')
ましたが、これはもう機能しません。
モジュール内のデータ ファイルを編集する方法はありますか? または、このリストを保存するより良い方法はありますか?
python - 子プロセスとしての Python setuptools エントリポイントとサブアプリケーション
私は Windows で作業しており、エンド ユーザーに配布されるアプリケーションを開発しています。
私は、たくさんの python パッケージを含む setupttools ディストリビューションを 1 つ持っています。このディストリビューションは、コード内のさまざまな関数を指すいくつかの console_scripts エントリポイントを宣言します。
これらのエントリポイントの 1 つは、アップデータ アプリケーションになる予定です。現在、サブプロセスを使用して子プロセスとして起動し、python スクリプトへのフル パスを指定しています。
代わりに、生成された setuptools エントリポイント スタブ実行可能ファイルを起動するサブプロセスとして使用します。
次のような方法で、サブアプリケーションへのエントリポイントを取得できます。
これにより、そのためのpython関数が提供されます。この関数から、venv にある生成された setuptools スクリプト ラッパーに移動する方法はありますか?
助けてくれてありがとう。
python - ソース管理された pip パッケージを他のパッケージの要件を満たすようにする方法
パッケージがリポジトリからインストールされるとpip freeze
、パッケージ名/バージョンではなく、そのパッケージのリポジトリ パスが生成されます。例:
そのようなパッケージが別のアプリケーションによって必要とされた場合、それは認識されないようです。例:
このような問題をどのように回避する必要がありますか?