2017-10-11 5 views
0

私はPython 2.4-2.7で動作するパッケージを持っています。 3.2-3.7。 これは、Python 2またはPython 3のすべてではなく、特定のバージョンであることに注意してください。特定のPythonバージョンのセットに対してPythonホイールを作成するにはどうすればよいですか? py2.py3-none-any.whlが広すぎる

このパッケージは、ソースコードが異なるPython 2.4と2.5をサポートしています。

私は各バージョンの卵を配布していましたが、これは非常に特殊であり、私はsetup.py bdist_wheelが広すぎて、私がマッチしたくないPythonバージョンと一致するものを作成していました。

私がホイールを作成したとき、私は拡張子py2.py3-non-any.whlになりましたが、これはPython 2.4と2.5では間違っています。 (そして、tarballもそうです)。

PyPiは1つのtarballしか許可しないので、今は2.4,2.5以外のソースを使用します。 2.4 2.5ソースも含めることができればうれしいでしょう。ええと、私はジップとしてそれをすることができますか? (おそらくない)。

私はちょうどpy35-non-any.whlが必要だとsetup.pyに通知しますか?またはpy2が2.6または2.7に指定されていますか? 3.2とそれ以上のpy3。

もっと一般的には、Pythonバージョン1が実行されているにもかかわらずピップが適切なピピファイルを選ぶように設定するのは簡単です。

+0

なぜ、13歳のPythonバージョンを最初からサポートしようとしているのですか? – jwodder

+0

なぜですか?コードの目的は、Pythonバイトコードをどのバージョンでも処理することです。したがって、任意のバージョンでコードを実行することも便利です。ちなみに、Pythonコミュニティでは、実行するのが難しい、またはPythonがうまくサポートできないツールや考え方がない場合、Pythonやそのツールや考え方が不十分であることを認めるよりむしろ、代わりに「あなたはそれをしたくない」と言います。 – rocky

+0

質問が本当に難しいときは、そんなに質問するのは無意味です。その代わりに、自分で解決策を見つけ、GHでコードを公開し、その解決策をブログ記事に記述する必要があります。 – phd

答えて

0

setup.py bdist_wheelを実行すると、あまりにも一般的なものが作成されますが、ここでは単純な考え方があります。ファイルの名前を変更するだけです。

私はこれをPypiのディストリビューションで試してみました。それは動作します。ホイールはタールボールよりも優先され、そのバージョンのホイールがプルダウンされます。 その後、プログラムの実行は機能します。

具体的には、setup.py bdist_wheelfoo-1.2.3-py2.py3-none-any.whlで作成されましたが、Python 2とPython 3のすべてのバージョンが必要なので、間違っていました。

しかし、私はこれは、Python 2.7とPython 3.6でのみ仕事に調整したい場合など、私はにコピー/名前の変更:

foo-1.2.3-py27-none-any.whl 
foo-1.2.3-py36-none-any.whl 

達成する方法については、他の考えやアイデアがあるかもしれません、私はこれを開いたままにします。これが本当に簡単なことであれば、setup.pyの中にオプションがあるか、それが何であれbdist_wheelを扱い、あなたの名前を変更することができればいいかもしれません。

命名規則で許容される範囲は、3.5-3.7と指定できますか?あるいは、何とかpy25.py26.py27のようなリストを与えることができますか?

関連する問題