cx_Freeze转换后的exe:窗口立即关闭

时间:2018-08-18 04:18:18

标签: python-3.x pandas numpy cx-freeze

我正在尝试使用cx_Freeze将pygame python py转换为.exe文件。设置文件可以正确执行且没有错误,但是问题是,当我运行.exe文件时,控制台窗口(黑色cmd状窗口)将快速打开并关闭。我要转换的.py叫做Salary.py,它包含一个.input('str')代码,因此 用户可以决定要使用哪个csv文件。 我的Salary.py的说明:如果用户输入一个整数,Salary.py帮助他们解析一个存在的csv文件并运行 脚本并输出到另一个csv文件。 中文包含在代码中。 再一次,当我在python3.6中运行Salary.py时没有运行错误,并且现在构建exe文件时也没有错误。

我正在使用的setup.py:

from cx_Freeze import setup, Executable
import os

os.environ['TCL_LIBRARY'] = r'D:\Anaconda3\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'D:\Anaconda3\tcl\tcl8.6'
setup(name='Salary',
      version='0.1',
      description='Salarycount',
      executables= [Executable("Salary.py")])

我尝试在cmd中执行Salary.exe。它给了我:

Traceback (most recent call last):
  File "D:\Anaconda3\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
    module.run()
  File "D:\Anaconda3\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
    exec(code, m.__dict__)
  File "Salary.py", line 8, in <module>
  File "D:\Anaconda3\lib\site-packages\pandas\__init__.py", line 19, in <module>
"Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']

很显然,numpy已经安装到我的python软件包中,我什至不知道这是什么意思。 我的环境: 水蟒3 python 3.6 cx-Freeze 6.0b1

1 个答案:

答案 0 :(得分:0)

您的Salary.py脚本似乎使用了pandas包,对吗? pandas程序包需要numpy程序包才能工作,并且需要告诉cx_Freeze明确包含numpy程序包。尝试将以下options添加到setup

from cx_Freeze import setup, Executable
import os

os.environ['TCL_LIBRARY'] = r'D:\Anaconda3\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'D:\Anaconda3\tcl\tcl8.6'
setup(name='Salary',
      version='0.1',
      description='Salarycount',
      options={'build_exe': {'packages': ['numpy']}},
      executables= [Executable("Salary.py")])