2017-04-26 135 views
0

我有一个问题,每次我使用python setup.py build,它不会导入所有文件,如ws.ini, tcl.dll, tk.dll等 而没有这个文件我的app.exe不起作用。 我试图复制和粘贴这些文件,并且应用程序正常工作,但我需要一种自动导入的方法。 谢谢。导入文件cx_Freeze

import sys, os 
from cx_Freeze import setup, Executable 

os.environ['TCL_LIBRARY'] = r'C:\Users\matheus.sales.GTONIATO\AppData\Local\Programs\Python\Python35\tcl\tcl8.6' 
os.environ['TK_LIBRARY'] = r'C:\Users\matheus.sales.GTONIATO\AppData\Local\Programs\Python\Python35\tcl\tk8.6' 

build_exe_options = { 
     "packages": ["os", "configparser", "glob", "xml.dom", "lxml"], 
     "includes": ["lxml.etree", "lxml._elementpath"], 
     "include_files": ["img/logo.png", "README.md", "ws.ini", "tcl86t.dll", "tk86t.dll"] 
    } 

base = None 
if sys.platform == "win32": 
    base = "Win32GUI" 

setup(
    name="myapp", 
    version="1.0.0", 
    description = "Web Service My App", 
    options = {"build.exe": build_exe_options}, 
    executables = [Executable("interface.py", base=base)] 
    ) 

回答

0

什么是确切的错误? 刚刚花了很多时间试图让cx_freeze工作,我发现你需要正斜杠作为环境变量&,你需要给include_files一个路径。这适用于我:

import sys 
import os 
from cx_Freeze import setup, Executable 

os.environ['TCL_LIBRARY'] = 'C:/Program Files/Python36/tcl/tcl8.6' 
os.environ['TK_LIBRARY'] = 'C:/Program Files/Python36/tcl/tk8.6' 


# Dependencies are automatically detected, but it might need fine tuning. 
build_exe_options = {"includes": ["tkinter","unguilded"], 
        "packages":["tkinter"], 
        "include_files":["C:/Program Files/Python36/DLLs/tcl86t.dll", "C:/Program Files/Python36/DLLs/tk86t.dll"]} 

# GUI applications require a different base on Windows (the default is for a 
# console application). 
base = None 
if sys.platform == "win32": 
    base = "Win32GUI" 

setup(
    name = "Scraper", 
    version = "0.1", 
    description = "Scrapper", 
    options = {"build_exe": build_exe_options}, 
    executables = [Executable("Scrape.py", base = base)])