問題タブ [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.
python - 卵を車輪に変えることはできますか?
既にビルド/ダウンロードされた Python の卵があり、それをPEP 427に記載されている wheel 形式に変換したいと考えています。
これどうやってするの?
python - pip を使用するときに既存のホイールを再構築しないようにするにはどうすればよいですか?
pip 1.5.X
を使用pip wheel
して、パッケージの wheel をビルドしてキャッシュし、 with を使用し--use-wheel
てpip install
キャッシュされた wheel からインストールできます。
環境設定スクリプトでこの機能を使用しようとしています。これは私がしようとしているものです:
pip wheel
ホイールを構築する前に、ホイールが既に存在するかどうかを確認することを期待しています。しかし、既存のホイールを無視して毎回ビルドしているようです。
これを回避することは可能ですか?
pip - 「ホイール」からインストールした場合のpsycopg2モジュールのロードエラー
wheelアーカイブを含むローカル パッケージ ディレクトリからいくつかの python 要件をインストールしようとしています。Docker コンテナー内に要件をインストールしています。
私がフォローしている手順は次のとおりです。
次に、私の内部Dockerfile
:
これは機能し、すべての要件が正しくインストールされています。
ただし、実際に を使用 psycopg2
するコンテナー内で何かを実行しようとすると、次のようになります。
これは、ホイールが構築された方法と関係があると思います-pip wheel
コンテナホストマシン(Ubuntu 12.04)で実行しました。
これを修正するにはどうすればよいですか。ホイールを使用すると、コンテナー イメージのビルドにかかる時間が大幅に短縮されるため、できることならパッケージのインストールに戻りたくありません。
python - Python Wheels による条件付き依存関係
ホイールにしたいPythonパッケージがあります。Python 2 では、パッケージはipaddr
ライブラリを使用します。Python 3 では、組み込みipaddress
ライブラリを使用します。sdist
パッケージについては、Python のバージョンに基づいて要件を設定するためにチェックsys.version_info
インします。setup.py
残念ながら、これは車輪では機能しないようです。ホイールを使用して Python バージョンに基づいて条件付き依存関係を実行することは可能ですか?
python - 既存のネイティブ ライブラリから Python Wheel を作成するにはどうすればよいですか?
Python メカニズムとは独立して構築されたネイティブ共有ライブラリ (.dll または .so) と、ライブラリへのインターフェイスとして ctypes を使用する Python モジュールがあるとします。それらを .whl パッケージに組み込む方法はありますか? もしそうなら、どのように?
これが可能であると仮定すると、wheel パッケージをインストールして使用する必要があると思いますpython setup.py bdist_wheel
が、setup.py はどのように見える必要がありますか?
さまざまなプラットフォーム用の Wheels をプライベート パッケージ インデックスにアップロードし、使用しているプラットフォームに適したものを pip インストールできるようにしたいと考えています。
python - pip経由でクロスプラットフォームホイールをダウンロードするには?
私は、Pip を使用してパッケージを事前にダウンロードし、それをターゲット マシンにコピーして展開することに慣れています。新しく導入された Python Wheels では、"pip ... --no-use-wheel" を実行せざるを得ません。これは、ダウンロードしたパッケージの一部がプラットフォーム固有のもの (私は OSX で開発し、Debian にデプロイしている) であり、そうしないためです。ターゲット マシンにインストールします。ターゲット プラットフォーム (またはプラットフォームに依存しない) 用の Wheels をダウンロードする方法はありますか?
python - ピップ ホイールの条件付き依存関係
Python パッケージを開発するための virtualenv で作業している間、私は "pip wheel" を発行していました。パッケージに必要なすべてのホイール アーカイブを生成します。setuptools の extras_require パラメーターにリストすることで、条件付き依存関係の使用を開始します。特定の条件付き依存関係のホイール アーカイブを生成することは可能ですか?
次のようなもの: pip wheel ".[conditional_feature]" はサポートされていません。(少なくともpython-2.7では)これらの依存関係をvirtualenvにインストールできることに注意してください: pip install -e ".[conditional_feature]"
python - ホイールにファイルを追加するにはどうすればよいですか?
wheel に含まれるファイルを制御するにはどうすればよいですか? MANIFEST.in
では使用されていないようpython setup.py bdist_wheel
です。
更新:
ソース tarball と wheel からのインストールの違いについて、私は間違っていました。ソース配布には で指定されたファイルが含まれていますMANIFEST.in
が、インストールされたパッケージには python ファイルしか含まれていません。インストールがソース配布、egg、またはホイールのいずれによるものであるかに関係なく、インストールする必要がある追加のファイルを特定するための手順が必要です。つまり、追加のパッケージ ファイルにはpackage_dataが必要であり、コマンド ライン スクリプトやシステム構成ファイルなどのパッケージ外のファイルにはdata_filesが必要です。
元の質問
パッケージをビルドし、含まれるファイルと除外されるファイルを制御し、設定を確認するためにpyromaとcheck-manifestを使用しているプロジェクトがあります。python setup.py sdist
MANIFEST.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) がフォルダーにインストールされ、テストが正しく実行されるようになります。提案をありがとう!