Python (2.7) でアプリケーションを作成しました。構造は次のようになります。
kent$ tree myApp
myApp
|-- foo.py
|-- gui
| |-- g1.py
| |-- g2.py
| |-- g3.py
| `-- __init__.py
|-- icons
| |-- a.png
| `-- e.png
|-- logic
| |-- __init__.py
| |-- l1
| | |-- __init__.py
| | |-- la.py
| | `-- lc.py
| |-- l2
| | |-- __init__.py
| | |-- ld.py
| | `-- lf.py
| |-- logic1.py
| |-- logic2.py
| `-- logic3.py
|-- myApp.py
`-- resources
|-- x.data
`-- z.data
setup.py
今、私は自分のアプリケーションを配布するために を書こうとしています。私はこれが初めてです。py doc を読み、いくつかのテストを行った後。いくつかの質問が出てきます:
ルートパッケージ (myApp) を以下にパッケージ化するにはどうすればよいですか (またはパッケージ化する必要があり
/lib/python/site-package
ますか? )私のpyファイルでは、リソース/アイコンを相対パスで参照しているためです。たとえば、
foo.py
そこにある可能性がicons/a.png
あり、gui/g1.py
そこにある可能性がある../icons/e.png
などicons
パッケージ化してresources
ディレクトリを作成するにはどうすればよいですか?2つのディレクトリを正しい場所にコピーしない
package_data
ようです。data_files
これは正しい方法ですか?
packages = [''], package_dir = {'': ''}, package_data= {'': ['icons/*.*', 'resources/*.*']},
インストール後、私のファイルは次のようになります。
/usr/lib/python2.7/site-packages/icons/*.png /usr/lib/python2.7/site-packages/resources/*.data /usr/lib/python2.7/site-packages/gui/... /usr/lib/python2.7/site-packages/logic/...
アプリケーションの構造に問題がありますか?
これらのリソース/アイコン/ファイルは、プロジェクトルートの下ではなく、特定の python パッケージに移動する必要がありますか? setup.py で、
package_data
それらを正しい場所にコピーするために使用できるようにします。