【问题标题】:Include all my python libraries to the exe generated by py2exe将我所有的 python 库包含到 py2exe 生成的 exe 中
【发布时间】:2017-10-11 22:28:27
【问题描述】:

我想将我的 python.exe 用于在我的计算机上编译和运行我的程序的所有 python 库和依赖项包含到由 py2exe 生成的 exe 中, 我想要那个,因为生成的 py2exe **.exe* 仍然返回错误和中止,

谢谢

这里是我在我的程序中使用的库:

from Tkinter import *  # POUR L'interface graphique
import tkFileDialog  # POUR l'ouverture d'
import csv
import ttk
import Tix as tix
import re  # regular exprun fichier
import tkMessageBox  # POUR un messageboxe pour quitter le programme
import py2exe, sys, os
import numpy as np
from threading import Thread
import datetime as dt
import pygal
from bokeh.plotting import figure, output_file, show
from datetime import datetime as time
import matplotlib.pyplot as plt
from PyQt4 import QtGui
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
from matplotlib import cm
from matplotlib.dates import date2num
from matplotlib.gridspec import GridSpec
import matplotlib.dates as mdates

这里是我的 setup.exe 脚本:

import sys
import os
import glob
import os.path

from distutils.core import setup
import py2exe
sys.setrecursionlimit(5000)

sys.argv.append('py2exe')
"""
setup(
    options = {'py2exe': { 'compressed': True}},
    windows = [{'script': "D:\Users\u156726\PycharmProjects\SFR_APP\SFR_APP_BIG_DATA.py"}],
    zipfile = None,
)
"""
import matplotlib
import glob

setup(console=['D:\Users\u156726\PycharmProjects\SFR_APP\SFR_APP.py'],options={
               'py2exe': {
                          'packages' :  ['matplotlib', 'pytz'],

                          }
                },

【问题讨论】:

    标签: python python-2.7 anaconda py2exe continuum


    【解决方案1】:

    py2exe 提供“选项”参数来定义要包含或排除的包列表。当缺少包时,您可以强制 py2exe 将这些包捆绑到 exe 中。

    查看docs 了解有关所有选项的更多信息。

    includes = ['matplotlib', 'numpy', 'Tkinter', 'tcl', 'Tkconstants', ... ]
    excludes = ['_gtkagg', '_tkagg', 'curses', 'pywin.debugger', 'pywin.debugger.dbgcon', 'pywin.dialogs' ]
    packages = []
    dll_excludes = []
    
    setup(
        options = {"py2exe": {"compressed": 0,
                              "optimize": 0,
                              "includes": includes,
                              "excludes": excludes,
                              "packages": packages,
                              "dll_excludes": dll_excludes,
                              "bundle_files": 1,
                              "dist_dir": ".",
                              "xref": False,
                              "skip_archive": False,
                              "ascii": False,
                              "custom_boot_script": '',
                             }
                  },
        console=...,
    )
    

    【讨论】:

    • 谢谢@Maurice,所以我使用的是 Windows64,它会导致 budle-files1 出现问题“错误:win64 上尚不支持 bundle-files 1”
    • 然后不要捆绑 :) 我只是复制粘贴我多年来使用的东西,您可能需要根据自己的需要进行调整。
    • 它仍然返回错误,例如:文件“matplotlib_init_.pyc”,第 1131 行,在 文件“matplotlib_init_.pyc”中,第 965 行,在 rc_params 文件“matplotlib_init_.pyc”中,第 815 行,在 matplotlib_fname 文件“matplotlib_init_.pyc”中,第 320 行,在包装文件“matplotlib_init_.pyc",第 718 行,在 get_data_path_cached 文件中 "matplotlib__init_.pyc",第 713 行,在 _get_data_path RuntimeError: 找不到 matplotlib 数据文件
    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2019-09-15
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多