我正在尝试使用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
答案 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")])