[解決済み] MANIFEST.in は "python setup.py install" で無視される - データファイルがインストールされていない?
質問
これは、コード以外のものを削除した、私のstripped-down setup.pyスクリプトです。
#!/usr/bin/env python
from distutils.core import setup
from whyteboard.misc import meta
setup(
name = 'Whyteboard',
version = meta.version,
packages = ['whyteboard', 'whyteboard.gui', 'whyteboard.lib', 'whyteboard.lib.pubsub',
'whyteboard.lib.pubsub.core', 'whyteboard.lib.pubsub.utils', 'whyteboard.misc'],
py_modules = ['whyteboard'],
scripts = ['whyteboard.py'],
)
MANIFEST.in:
include *.txt
include whyteboard-help/*.*
recursive-include locale *.mo
recursive-include images *.png
私が "python setup.py install sdist" を実行すると、私の locale/ images/ と whyteboard-help/ フォルダのある "whyteboard-0.41" ルートフォルダを含む素晴らしい .tar.gz が得られます。これはまた、whyteboard ソースパッケージの中から私のプログラムを起動する whyteboard.py スクリプトも持っています。
というわけで。
whyteboard/
├── locale/
├── images
├── whyteboard-help/
├── whyteboard/
│ ├── __init__.py
│ └── other packages etc
├── whyteboard.py
├── README
├── setup.py
└── CHANGELOG
これは私のプログラムのソースを反映しており、すべてがあるべき姿であり、正しいものです。
しかし、私が "python setup.py install" を実行すると、私のデータファイルのどれも書き込まれません - "whyteboard" ソースパッケージのみ、そして whyteboard.py は /usr/local/lib/python2.6/dist-packages/ に配置されています。
理想的には、私のプログラムがそのリソースを探すことを期待する方法として、.tar.gz ファイルで生成されたものと同じディレクトリ構造が dist-packages で作成されることを望みます。
どうすれば "install" にこのディレクトリ構造を作成させることができますか。私が知る限りでは、マニフェスト ファイルを無視しているようです。
どのように解決するのですか。
Nedの回答(核心的な問題を突いている)に加えて、いくつかの注意点があります。
Distutilsは、Pythonパッケージとモジュールを、プロジェクトごとのサブディレクトリ内の
site-packages
(または
dist-packages
に直接インストールされます。
site-packages
に直接インストールされます。ですから
whyteboard-xx
ディレクトリは、最終的にインストールされた形では存在しません。
このことの意味するところは、あなたの
data_files
に直接インストールされるため、どのプロジェクトに属しているかを明確にするために、 site-packages
ディレクトリに直接インストールされ
whyteboard
ディレクトリ内ではありません。
あるいは、代わりにデータを
package_data
の
whyteboard
パッケージの中 (つまり、そのパッケージの中、すなわち
__init__.py
の隣)、そしてこれは問題ではありません。
最後に、このような場合に、両方の
whyteboard.py
モジュールが
py_modules
と
whyteboard/__init__.py
のパッケージで
packages
. この 2 つは互いに排他的で、両方がある場合は
whyteboard.py
モジュールはimportで無視され、同じ名前のパッケージが優先されます。
もし
whyteboard.py
が単なるスクリプトで、インポートされることを意図していない場合は
スクリプト
オプションを使用し、それを
py_modules
.
関連
-
[解決済み] Pythonが解釈される場合、.pycファイルとは何ですか?
-
[解決済み] ローカルにインストールされたPythonモジュールの一覧を取得するにはどうしたらいいですか?
-
[解決済み] Python setup.py develop vs install
-
[解決済み】なぜPythonはこのJSONデータをパースできないのですか?[終了] PythonがこのJSONデータをパースできないのはなぜですか?
-
[解決済み】python setup.pyのアンインストール
-
[解決済み】setup.pyで非Pythonファイルをインクルードする。
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] djangoのQueryDictをPythonのDictに変更するには?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] setuptools/distutilsでパッケージデータをインクルードするには?
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?