2009-04-22 10 views
10

パッケージをPyPIにアップロードする魔法の "python setup.py some_incantation_here"コマンドは、元のパッケージを元の形にするためにダウンロードすることができますか?PythonにPythonパッケージをアップロードするには?

私はいくつかのソースファイルといくつかのイメージファイル(package_dataとして)を持つパッケージを持っています。 「setup.py sdist register upload」と入力すると、.tar.gzに画像ファイルが除外されます。私が "setup.py bdist_egg register upload"を実行すると、eggには画像が含まれますが、setup.pyファイルは除外されます。私はプロジェクトの全部であるファイル「setup.py the_whole_freaking_thing register upload」をアップロードすることができます。

おそらく、私のプロジェクトディレクトリを手動でtar.gzしてPyPI Webインターフェイスを使ってアップロードするのが最も良い方法でしょうか?

警告:SVNリポジトリとPyPIで作成したばかりの単純なプロジェクトを保存する必要がないようにしようとしています。その履歴とファイルを2か所で追跡する作業が浪費されているようです。

答えて

16

"sdist"コマンドを実行すると、 "package_data"にリストされているものではなく、 "setup.py"の隣にある "MANIFEST.in"ファイルがインクルードファイルのリストを制御します。これは、今日のPythonパッケージングソリューションの統合失調症の性質と関係があります。 "sdist"は標準ライブラリのdistutilsによって供給され、 "bdist_egg"はsetuptoolsモジュールによって制御されます。

問題を解決するために、あなたのsetup.pyファイルに次のMANIFEST.inを作成してみてください、そして、このようにそれに内容を与える:、私はイメージングよもちろん

include *.jpg 

そのあなたの「画像ファイル」ディスクイメージやISOイメージなどではなく実際のイメージです。もし私が間違っていると思うなら、上記の行を調整しなければならないかもしれません!しかし、distutilsドキュメントのSpecifying which files to distributeセクションをチェックして、あなたの.tar.gzソースディストリビューションにそれらのファイルを表示できないかどうかを確認してください!がんばろう。

+0

パーフェクト! "include nosenotify/*。png"は私のファイルがサブディレクトリにあるので必要なフォーマットでした。この形式は.tar.gz nosenotify /ディレクトリに.pngファイルが含まれていることを保証していました。 –

+2

PS Brandonさん、皮肉なことにあなたの答えを読んだ後、私はあなたのブログに行き、私の質問の前日から投稿を見ました。あなたがpyronを作っているsetup.pyでうんざりしていました。 :) –

関連する問題