Import file cx_FreezeAsk Question

问题:

I have a problem, everytime I use python setup.py build, it doesn't import the all files, like ws.ini, tcl.dll, tk.dll and etc. And whitout this files my app.exe doesn't work. I tried to copy and paste these files and the application works normally, but I need a way to import automatically. Thanks.

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)]
    )

回答1:


What is the exact error? Having just spent ages trying to get cx_freeze to work, I found you need forward slashes for the environment variables & you need to give a path to include_files. This works for me:

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)])
标签: python-3.x cx-freeze
© 2014 TuiCode, Inc.