問題タブ [python-wheel]

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 投票する
2 に答える
6884 参照

python - 卵を車輪に変えることはできますか?

既にビルド/ダウンロードされた Python の卵があり、それをPEP 427に記載されている wheel 形式に変換したいと考えています。
これどうやってするの?

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

python - pip を使用するときに既存のホイールを再構築しないようにするにはどうすればよいですか?

pip 1.5.Xを使用pip wheelして、パッケージの wheel をビルドしてキャッシュし、 with を使用し--use-wheelpip installキャッシュされた wheel からインストールできます。

環境設定スクリプトでこの機能を使用しようとしています。これは私がしようとしているものです:

pip wheelホイールを構築する前に、ホイールが既に存在するかどうかを確認することを期待しています。しかし、既存のホイールを無視して毎回ビルドしているようです。

これを回避することは可能ですか?

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

pip - 「ホイール」からインストールした場合のpsycopg2モジュールのロードエラー

wheelアーカイブを含むローカル パッケージ ディレクトリからいくつかの python 要件をインストールしようとしています。Docker コンテナー内に要件をインストールしています。

私がフォローしている手順は次のとおりです。

次に、私の内部Dockerfile

これは機能し、すべての要件が正しくインストールされています。

ただし、実際に を使用 psycopg2するコンテナー内で何かを実行しようとすると、次のようになります。

これは、ホイールが構築された方法と関係があると思います-pip wheelコンテナホストマシン(Ubuntu 12.04)で実行しました。

これを修正するにはどうすればよいですか。ホイールを使用すると、コンテナー イメージのビルドにかかる時間が大幅に短縮されるため、できることならパッケージのインストールに戻りたくありません。

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

python - Python Wheels による条件付き依存関係

ホイールにしたいPythonパッケージがあります。Python 2 では、パッケージはipaddrライブラリを使用します。Python 3 では、組み込みipaddressライブラリを使用します。sdistパッケージについては、Python のバージョンに基づいて要件を設定するためにチェックsys.version_infoインします。setup.py残念ながら、これは車輪では機能しないようです。ホイールを使用して Python バージョンに基づいて条件付き依存関係を実行することは可能ですか?

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

python - 既存のネイティブ ライブラリから Python Wheel を作成するにはどうすればよいですか?

Python メカニズムとは独立して構築されたネイティブ共有ライブラリ (.dll または .so) と、ライブラリへのインターフェイスとして ctypes を使用する Python モジュールがあるとします。それらを .whl パッケージに組み込む方法はありますか? もしそうなら、どのように?

これが可能であると仮定すると、wheel パッケージをインストールして使用する必要があると思いますpython setup.py bdist_wheelが、setup.py はどのように見える必要がありますか?

さまざまなプラットフォーム用の Wheels をプライベート パッケージ インデックスにアップロードし、使用しているプラ​​ットフォームに適したものを pip インストールできるようにしたいと考えています。

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

python - pip経由でクロスプラットフォームホイールをダウンロードするには?

私は、Pip を使用してパッケージを事前にダウンロードし、それをターゲット マシンにコピーして展開することに慣れています。新しく導入された Python Wheels では、"pip ... --no-use-wheel" を実行せざるを得ません。これは、ダウンロードしたパッケージの一部がプラットフォーム固有のもの (私は OSX で開発し、Debian にデプロイしている) であり、そうしないためです。ターゲット マシンにインストールします。ターゲット プラットフォーム (またはプラットフォームに依存しない) 用の Wheels をダウンロードする方法はありますか?

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

python - ピップ ホイールの条件付き依存関係

Python パッケージを開発するための virtualenv で作業している間、私は "pip wheel" を発行していました。パッケージに必要なすべてのホイール アーカイブを生成します。setuptools の extras_require パラメーターにリストすることで、条件付き依存関係の使用を開始します。特定の条件付き依存関係のホイール アーカイブを生成することは可能ですか?

次のようなもの: pip wheel ".[conditional_feature]" はサポートされていません。(少なくともpython-2.7では)これらの依存関係をvirtualenvにインストールできることに注意してください: pip install -e ".[conditional_feature]"

0 投票する
6 に答える
40365 参照

python - ホイールにファイルを追加するにはどうすればよいですか?

wheel に含まれるファイルを制御するにはどうすればよいですか? MANIFEST.inでは使用されていないようpython setup.py bdist_wheelです。

更新

ソース tarball と wheel からのインストールの違いについて、私は間違っていました。ソース配布には で指定されたファイルが含まれていますMANIFEST.inが、インストールされたパッケージには python ファイルしか含まれていません。インストールがソース配布、egg、またはホイールのいずれによるものであるかに関係なく、インストールする必要がある追加のファイルを特定するための手順が必要です。つまり、追加のパッケージ ファイルにはpackage_dataが必要であり、コマンド ライン スクリプトやシステム構成ファイルなどのパッケージ外のファイルにはdata_filesが必要です。

元の質問

パッケージをビルドし、含まれるファイルと除外されるファイルを制御し、設定を確認するためにpyromacheck-manifestを使用しているプロジェクトがありますpython setup.py sdistMANIFEST.in

最近、デュアル Python 2/3 コードに変換し、setup.cfg を追加しました

でホイールを作成できpython setup.py bdist_wheelます。希望どおりのユニバーサル ホイールのように見えます。ただし、 で指定されたすべてのファイルが含まれているわけではありませんMANIFEST.in

何がインストールされますか?

深く掘り下げた結果、パッケージングとホイールについて詳しく知ることができました。これが私が学んだことです:

PyPi のmultigtfs プロジェクトに2 つのパッケージ ファイルをアップロードします。

  • multigtfs-0.4.2.tar.gz- のすべてのファイルを含むソース tar ボールMANIFEST.in
  • multigtfs-0.4.2-py2.py3-none-any.whl- 問題のバイナリ ディストリビューション。

どちらも Python 2.7.5 を使用して 2 つの新しい仮想環境を作成し、各パッケージをインストールしました ( pip install multigtfs-0.4.2.tar.gz)。2 つの環境はほぼ同じです。それら.pycには、「コンパイルされた」Python ファイルであるさまざまなファイルがあります。ディスク上のさまざまなパスを記録するログ ファイルがあります。ソース tar ボールからのインストールにはmultigtfs-0.4.2-py27.egg-info、インストールの詳細を示すフォルダーが含まれ、ホイール インストールにはmultigtfs-0.4.2.dist-info、そのプロセスの詳細を含むフォルダーがあります。ただし、multigtfs プロジェクトを使用するコードの観点からは、2 つのインストール方法に違いはありません。

明示的に、私のテストで使用される .zip ファイルも含まれていないため、テスト スイートは失敗します。

追加ファイルの指定

回答からの提案を使用して、次のディレクティブをいくつか追加しましたsetup.py

これにより、zip ファイル (および README) がフォルダーにインストールされ、テストが正しく実行されるようになります。提案をありがとう!