⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setup_all.py

📁 用python实现的邮件过滤器
💻 PY
字号:
# setup_all.py# A distutils setup script for SpamBayes binariesimport sys, os, globsb_top_dir = os.path.abspath(os.path.dirname(os.path.join(__file__, "../../../..")))sys.path.append(sb_top_dir)sys.path.append(os.path.join(sb_top_dir, "windows"))sys.path.append(os.path.join(sb_top_dir, "scripts"))sys.path.append(os.path.join(sb_top_dir, "Outlook2000"))sys.path.append(os.path.join(sb_top_dir, "Outlook2000", "sandbox"))import spambayes.resources# Generate the dialogs.py file.import dialogsdialogs.LoadDialogs()# ModuleFinder can't handle runtime changes to __path__, but win32com uses them,# particularly for people who build from sources.  Hook this in.try:    # py2exe 0.6.4 introduced a replacement modulefinder.    # This means we have to add package paths there, not to the built-in    # one.  If this new modulefinder gets integrated into Python, then    # we might be able to revert this some day.    try:        import py2exe.mf as modulefinder    except ImportError:        import modulefinder    import win32com    for p in win32com.__path__[1:]:        modulefinder.AddPackagePath("win32com", p)    for extra in ["win32com.shell","win32com.mapi"]:        __import__(extra)        m = sys.modules[extra]        for p in m.__path__[1:]:            modulefinder.AddPackagePath(extra, p)except ImportError:    # no build path setup, no worries.    passfrom distutils.core import setupimport py2exepy2exe_options = dict(    packages = "spambayes.resources,encodings,spambayes.languages," \               "spambayes.languages.es,spambayes.languages.es_AR," \               "spambayes.languages.fr,spambayes.languages.es.DIALOGS," \               "spambayes.languages.es_AR.DIALOGS," \               "spambayes.languages.fr.DIALOGS," \               "PIL",    excludes = "Tkinter," # side-effect of PIL and markh doesn't have it :)                "win32ui,pywin,pywin.debugger," # *sob* - these still appear                # Keep zope out else outlook users lose training.                # (sob - but some of these may still appear!)               "ZODB,_zope_interface_coptimizations,_OOBTree,cPersistence",    includes = "dialogs.resources.dialogs,weakref," # Outlook dynamic dialogs               "BmpImagePlugin,JpegImagePlugin", # PIL modules not auto found    dll_excludes = "dapi.dll,mapi32.dll,"                   "tk84.dll,tcl84.dll", # No Tkinter == no tk/tcl dlls    typelibs = [        ('{00062FFF-0000-0000-C000-000000000046}', 0, 9, 0),        ('{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}', 0, 2, 1),        ('{AC0714F2-3D04-11D1-AE7D-00A0C90F26F4}', 0, 1, 0),    ])# These must be the same IDs as in the dialogs.  We really should just extract# them from our rc scripts.outlook_bmp_resources = [    ( 125, os.path.join(sb_top_dir, r"Outlook2000\dialogs\resources\sbwizlogo.bmp")),    ( 127, os.path.join(sb_top_dir, r"Outlook2000\dialogs\resources\folders.bmp")),    (1062, os.path.join(sb_top_dir, r"Outlook2000\dialogs\resources\sblogo.bmp")),    # and these are currently hard-coded in addin.py    (6000, os.path.join(sb_top_dir, r"Outlook2000\images\recover_ham.bmp")),    (6001, os.path.join(sb_top_dir, r"Outlook2000\images\delete_as_spam.bmp")),]# These are just objects passed to py2exeoutlook_addin = dict(    modules = ["addin"],    dest_base = "bin/outlook_addin",    bitmap_resources = outlook_bmp_resources,    create_exe = False,)#outlook_manager = Options(#    script = os.path.join(sb_top_dir, r"Outlook2000\manager.py"),#    bitmap_resources = outlook_bmp_resources,#)outlook_dump_props = dict(    script = os.path.join(sb_top_dir, r"Outlook2000\sandbox\dump_props.py"),    dest_base = "bin/outlook_dump_props",    icon_resources = [(100,  os.path.join(sb_top_dir,                                          r"windows\resources\sbicon.ico")),                     ],)# A "register" utility for Outlook.  This should not be necessary, as# 'regsvr32 dllname' does exactly the same thing.  However, Inno Setup# version 4 appears to, upon uninstall, do something that prevents the# files used by the unregister process to be deleted.  Unregistering via# this EXE solves the problem.outlook_addin_register = dict(    script = os.path.join(sb_top_dir, r"Outlook2000\addin.py"),    dest_base = "bin/outlook_addin_register",    icon_resources = [(100,  os.path.join(sb_top_dir,                                          r"windows\resources\sbicon.ico")),                     ],)service = dict(    dest_base = "bin/sb_service",    modules = ["pop3proxy_service"],    icon_resources = [(100,  os.path.join(sb_top_dir,                                          r"windows\resources\sbicon.ico")),                     ],)sb_server = dict(    dest_base = "bin/sb_server",    script = os.path.join(sb_top_dir, "scripts", "sb_server.py"))sb_pop3dnd = dict(    dest_base = "bin/sb_pop3dnd",    script = os.path.join(sb_top_dir, "scripts", "sb_pop3dnd.py"))sb_upload = dict(    dest_base = "bin/sb_upload",    script = os.path.join(sb_top_dir, "scripts", "sb_upload.py"))pop3proxy_tray = dict(    dest_base = "bin/sb_tray",    script = os.path.join(sb_top_dir, "windows", "pop3proxy_tray.py"),    icon_resources = [(100,  os.path.join(sb_top_dir, r"windows\resources\sbicon.ico")),                      (1000, os.path.join(sb_top_dir, r"windows\resources\sb-started.ico")),                      (1010, os.path.join(sb_top_dir, r"windows\resources\sb-stopped.ico"))],)sb_imapfilter = dict(    dest_base = "bin/sb_imapfilter",    script = os.path.join(sb_top_dir, "scripts", "sb_imapfilter.py"),)autoconfigure = dict(    dest_base = "bin/setup_server",    script = os.path.join(sb_top_dir, "windows", "autoconfigure.py"),)convert = dict(    dest_base = "bin/convert_database",    script = os.path.join(sb_top_dir, "utilities", "convert_db.py"),)outlook_data_files = [    ["docs/outlook", [os.path.join(sb_top_dir, r"Outlook2000\about.html")]],    ["docs/outlook/docs", glob.glob(os.path.join(sb_top_dir, r"Outlook2000\docs\*.html"))],    ["docs/outlook/docs/images", glob.glob(os.path.join(sb_top_dir, r"Outlook2000\docs\images\*.jpg"))],    ["bin", [os.path.join(sb_top_dir, r"Outlook2000\default_bayes_customize.ini")]],]proxy_data_files = [    ["docs/sb_server", [os.path.join(sb_top_dir, r"windows\readme_proxy.html")]],    ["docs/sb_server", [os.path.join(sb_top_dir, r"windows\docs\troubleshooting.html")]],    # note that this includes images that are already in the outlook/docs/images    # directory - we need to consolidate the documentation (in terms of    # sharing images, if nothing else)    ["docs/sb_server/docs/images", glob.glob(os.path.join(sb_top_dir, r"windows\docs\images\*.jpg"))],]language_files = []languages_root = os.path.join(sb_top_dir, "spambayes", "languages")def add_language_files(current_dir):    files = os.listdir(current_dir)    for fn in files:        full_fn = os.path.join(current_dir, fn)        if os.path.isdir(full_fn):            add_language_files(full_fn)            continue        if os.path.splitext(fn)[1] == ".mo":            dest_name = os.path.join("languages", "%s" %                                     (full_fn[len(languages_root)+1:],))            language_files.append([os.path.dirname(dest_name), [full_fn]])add_language_files(languages_root)common_data_files = [    ["", [os.path.join(sb_top_dir, r"windows\resources\sbicon.ico")]],    ["", [os.path.join(sb_top_dir, r"LICENSE.txt")]],]# Default and only distutils command is "py2exe" - save adding it to the# command line every single time.if len(sys.argv)==1 or \   (len(sys.argv)==2 and sys.argv[1] in ['-q', '-n']):    sys.argv.append("py2exe")setup(name="SpamBayes",      packages = ["spambayes.resources"],      package_dir = {"spambayes.resources" : spambayes.resources.__path__[0]},      # We implement a COM object.      com_server=[outlook_addin],      # A service      service=[service],      # console exes      console=[sb_server, sb_upload, outlook_dump_props, sb_pop3dnd,               sb_imapfilter, convert],      # The taskbar      windows=[pop3proxy_tray, outlook_addin_register, autoconfigure],      # and the misc data files      data_files = outlook_data_files + proxy_data_files + \                   common_data_files + language_files,      options = {"py2exe" : py2exe_options},      zipfile = "lib/spambayes.modules",)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -