2017-04-26 77 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)])