ここに自分の質問に答えますが、誰もが分かりやすく答えることができます。その中にはかなり壊れやすいもの(パスのバージョン番号など)があるので、より良い方法を知っていればコメントや編集が可能です。ファイル
を見つける
は
1.まず、私は実際にはGTKランタイムのルートを見つけるために、このコードを使用します。これはしかし、あなたはランタイムをインストールする方法に非常に具体的で、おそらく一般的な場所のためのチェックの数を改善することができます。
を含めるように
#gtk file inclusion
import gtk
# The runtime dir is in the same directory as the module:
GTK_RUNTIME_DIR = os.path.join(
os.path.split(os.path.dirname(gtk.__file__))[0], "runtime")
assert os.path.exists(GTK_RUNTIME_DIR), "Cannot find GTK runtime data"
2.何のファイルこれが依存(A)関心の大きさの大きさ、および(b)アプリケーションの展開のコンテキスト。つまり、誰もが任意のロケール設定を持つことができる広い世界全体に展開しているのですか、翻訳された文字列を必要としない社内でのみ使用していますか?
あなたは、Windowsのテーマをしたい場合、あなたは含める必要があります:
GTK_THEME_DEFAULT = os.path.join("share", "themes", "Default")
GTK_THEME_WINDOWS = os.path.join("share", "themes", "MS-Windows")
GTK_GTKRC_DIR = os.path.join("etc", "gtk-2.0")
GTK_GTKRC = "gtkrc"
GTK_WIMP_DIR = os.path.join("lib", "gtk-2.0", "2.10.0", "engines")
GTK_WIMP_DLL = "libwimp.dll"
あなたはタンゴのアイコンたい場合:
GTK_ICONS = os.path.join("share", "icons")
を私は省略ローカライズデータは(もありますが、あなた)したくない場合があります。
GTK_LOCALE_DATA = os.path.join("share", "locale")
3.それを一緒に組み合せる
を3210
まず、与えられた点でファイルシステムツリーを歩き、data_files
オプションに適した出力を生成する関数を次に示します。
def generate_data_files(prefix, tree, file_filter=None):
"""
Walk the filesystem starting at "prefix" + "tree", producing a list of files
suitable for the data_files option to setup(). The prefix will be omitted
from the path given to setup(). For example, if you have
C:\Python26\Lib\site-packages\gtk-2.0\runtime\etc\...
...and you want your "dist\" dir to contain "etc\..." as a subdirectory,
invoke the function as
generate_data_files(
r"C:\Python26\Lib\site-packages\gtk-2.0\runtime",
r"etc")
If, instead, you want it to contain "runtime\etc\..." use:
generate_data_files(
r"C:\Python26\Lib\site-packages\gtk-2.0",
r"runtime\etc")
Empty directories are omitted.
file_filter(root, fl) is an optional function called with a containing
directory and filename of each file. If it returns False, the file is
omitted from the results.
"""
data_files = []
for root, dirs, files in os.walk(os.path.join(prefix, tree)):
to_dir = os.path.relpath(root, prefix)
if file_filter is not None:
file_iter = (fl for fl in files if file_filter(root, fl))
else:
file_iter = files
data_files.append((to_dir, [os.path.join(root, fl) for fl in file_iter]))
non_empties = [(to, fro) for (to, fro) in data_files if fro]
return non_empties
だから今はそうのようなsetup()
を呼び出すことができます。
setup(
# Other setup args here...
data_files = (
# Use the function above...
generate_data_files(GTK_RUNTIME_DIR, GTK_THEME_DEFAULT) +
generate_data_files(GTK_RUNTIME_DIR, GTK_THEME_WINDOWS) +
generate_data_files(GTK_RUNTIME_DIR, GTK_ICONS) +
# ...or include single files manually
[
(GTK_GTKRC_DIR, [
os.path.join(GTK_RUNTIME_DIR,
GTK_GTKRC_DIR,
GTK_GTKRC)
]),
(GTK_WIMP_DIR, [
os.path.join(
GTK_RUNTIME_DIR,
GTK_WIMP_DIR,
GTK_WIMP_DLL)
])
]
)
)