1

重複の可能性:
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) の変数が必要だと思いますが、それを効率的に行う方法が見つかりません。

助けてくれてありがとう、ウェブ上でそれを説明する良いリソースを見つけることができませんでした。お気軽にご質問ください。プロジェクトの詳細については、こちらをご覧ください。

編集 :

うーん、この質問は私の質問の半分に答えているようです。ログを保存するための個人用フォルダーを効率的に作成する方法を見つける必要があります。

4

0 に答える 0