重複の可能性:
setuptools: パッケージ データ フォルダーの場所
Python でアプリケーションを実装しましたが、これをパッケージ化したいと考えています。
これが私のツリーの簡略版です
.
├── ivolution
│ ├── data
│ │ └── ui
│ │ ├── AboutIvolutionDialog.glade
│ │ └── IvolutionWindow.glade
│ ├── Face.py
│ ├── gui
│ │ ├── AboutDialog.py
│ │ ├── IvolutionWindow.py
| |
│ ├── Guy.py
│ ├── training_types.py
|
├── Ivolution.py
├── setup.py
実行するメイン スクリプトは Ivolution.py です。
私の gui (ivolution/gui 内) は、glade ファイルをインポートします。
私の GUI コード (IvolutionWindow.py) の中で、グレード ファイルをインポートする必要があります。
self.builder.add_from_file("ivolution/data/ui/IvolutionWindow.glade")
パッケージから作業する場合、これは完全に機能します。しかし、パッケージをインストールすると
python setup.py install
Ivolution.py を実行すると、スクリプトが実行されたときの作業ディレクトリが IvolutionWindow.py の場所ではなくなります。
したがって、インポートエラーが発生します:
Traceback (most recent call last):
File "/usr/local/bin/Ivolution.py", line 10, in <module>
my_app = IvolutionWindow.IvolutionWindow("Ivolution")
File "/usr/local/lib/python2.7/dist-packages/ivolution/gui/IvolutionWindow.py", line 34, in __init__
self.builder.add_from_file("ivolution/data/ui/IvolutionWindow.glade")
File "/usr/lib/python2.7/dist-packages/gi/types.py", line 43, in function
return info.invoke(*args, **kwargs)
gi._glib.GError: Failed to open file 'ivolution/data/ui/IvolutionWindow.glade': No such file or directory
私の質問は、インポートを正しく処理するにはどうすればよいですか?
インストール ディレクトリとローカル データ ディレクトリ (~/.Ivolution) の変数が必要だと思いますが、それを効率的に行う方法が見つかりません。
助けてくれてありがとう、ウェブ上でそれを説明する良いリソースを見つけることができませんでした。お気軽にご質問ください。プロジェクトの詳細については、こちらをご覧ください。
編集 :
うーん、この質問は私の質問の半分に答えているようです。ログを保存するための個人用フォルダーを効率的に作成する方法を見つける必要があります。