問題タブ [sdist]

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

python - sdist/bdist_wheel には Linux では pyc が含まれていませんが、Windows には含まれています

ソースとコンパイル済みバイナリの両方を含める必要がある Python ディストリビューションを作成しようとしています。(はい、追加することに対する/追加するための引数を読みまし.pycたが、私の使用例では.pyc追加する必要があります)。Windows で手順を実行すると、ソース バイナリとコンパイル済みバイナリの両方が出力ファイルに追加されます (私は と の両方を使用sdistしましたbdist_wheel)。

次の構造があるとします。

folderAfolderBサブディレクトリ内に他のファイルが含まれている間、ソースコードが含まれています。

完了した手順:

  1. モジュールは次を使用してコンパイルされますcompileall
  2. のソースalphaは削除されます。のソースbetaは保持されます。
  3. 走るpython setup.py sdist|bdist_wheel

find_packages()モジュールを検出するために setup.py で使用しました。内のモジュールは検出されますが、内のモジュールalphaは検出されませんbeta

Windowsの結果.tgz.whlファイルには、必要なすべてのファイルがあります。すべてが良いです。

ただし、Linux (具体的には Ubuntu) で同じ手順を実行すると、 のモジュールのみbetaが追加され、いくつかのモジュールが追加されfolderBますが、異なるタイプの他のファイルと module は追加されませんalphasdistソース while のみbdistbdist_wheel提供し、.pycs のみを提供します。sdistこれはソース ファイルを配布するためのものでbdistあり、バイナリ ファイルを配布するためのものであると理解しています。

私の質問は、Windows で動作が異なるのはなぜですか? Linux で同じ出力を生成することは可能ですか (ソースおよび.pyc他のファイルと共に)?

Python 2.7 を使用しています。

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

python - python setup.py レジスターは位置 0 のバイト 0xff をデコードできません

Python コードをパッケージ化して、pypi にアップロードしたいと考えています。setup.py は次のようになります。

次に、これらのコマンドを正常に実行します

これらの後、パッケージをインポートしてテストケースを作成できます。

しかし、登録してpypiにアップロードしているときに、このデコードエラーがスローされます。何度も検索して試しましたが、すべてのファイルはutf-8でエンコードされています。

PowerShell を使用して Windows でこれらのコマンドを使用すると、「gbk」コーデックがデコードできないというメッセージがスローされます。

実際に何が起こったのかわかりません。初めてコードを pypi にアップロードしました...

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

python-3.x - Setuptools: 必要なパッケージが異なるビルド バリアントを使用する

ソース配布 (sdist) を作成したいと考えています。これは、必要なパッケージに関して、開発用とターゲット プラットフォーム用に異なる必要があります。

より具体的には、Raspberry Pi (ターゲット プラットフォーム) 用にパッケージ化する場合opencv-python、OpenCV はそこのソースからビルドされているため、必要ありませんが、開発用 PC (Ubuntu) では が必要ですopencv-python

このようないくつかのトリックに従って、--raspiパラメーターをに渡しようとしましたsetup.py:

を実行するpython3 setup.py sdist --raspiと、このアプローチは、生成された./dist/mypackage.tar.gz/mypackage/mypackage.egg-info/requires.txtものに含まれopencv-pythonなくなる程度まで機能します。

しかし、実行するpip3 install ./dist/mypackage.tar.gzと、次のようなエラーが表示されます。

これは、 に渡すときでも--install-option="--raspi"ありpip3 installます。どこかで読んだのは、setup.pyから実行するときに引数を再度 に渡す方法pipです。

setup.pyディストリビューション( )を手動で編集し、必要なパッケージから./dist/mypackage.tar.gz/mypackage/setup.py削除するとopencv-python、pip3 のインストールが機能します。

ビルドごとに異なるセットまたは要件を設定する他の方法はありますか? たとえばsetup.cfg、それぞれがパッケージのセットを指定する 2 つの異なるファイルを (どのように?) 使用しますか? 私はそれらにほとんど重複があるので、そのアプローチはあまり好きではありません。