10

Windows 用の zip をロールしようとすると、pytz が zoneinfo フォルダーを見逃していることに気付きました。現在、後に使用する回避策がありpython setup.py buildます。

7z a -xr!*.py* build\exe.win32-2.7\library.zip C:\Python27\Lib\site-packages\pytz

setup.pyまたは何かからそれを達成する適切な方法はありますか?

4

2 に答える 2

12

次のメソッドを追加して、これを修正できます。

def include_files():
        path_base = "C:\\Python27\\Lib\\site-packages\\pytz\\zoneinfo\\"
        skip_count = len(path_base) 
        zip_includes = [(path_base, "pytz/zoneinfo/")]
        for root, sub_folders, files in os.walk(path_base):
            for file_in_root in files:
                zip_includes.append(
                        ("{}".format(os.path.join(root, file_in_root)),
                         "{}".format(os.path.join("pytz/zoneinfo", root[skip_count:], file_in_root))
                        ) 
                )      
        return zip_includes

次に、setup.py ファイルに:

build_exe_options = {"packages": ["os"],
                     "excludes": ["tkinter"],
                     "zip_includes": include_files(),
                     ...
                     }

それが役立つことを願っています

于 2013-12-03T22:16:22.497 に答える
2

次の方法でPython 3.4でこの問題を解決しました

import pytz
setup(
    ...
    options = {'build_exe':
        {'include_files': (pytz.__path__[0],), ...},
    }, 
)

次にpytz、すべてのタイムゾーンで解凍されて含まれています

于 2016-03-15T12:34:06.923 に答える