使用py2exe为python代码构建可执行文件

时间:2015-01-04 14:19:57

标签: python python-2.7 py2exe

我为“Python2.7”安装了“py2exe”,制作了一个“Hello World”程序,使用py2exe来构建它的exe并且它工作得很好。

现在当我尝试构建我的实际代码的exe时,文件夹被创建并且exe也被创建没有任何问题但是当我启动exe时控制台出现不到一秒钟并关闭。

这种情况和测试程序的区别仅在于我在这种情况下有多个代码文件,在其中一些代码文件中我也导入了一些文件/库 以下是分布在不同文件中的导入命令:

from bs4 import BeautifulSoup
import time
import requests
from RdWrtCls import *
import os
import openpyxl 

最初我的源代码是:

from distutils.core import setup
import py2exe
from glob import glob
setup (console =['Crawler.py'])

当这不起作用时我做了一些研究,发现有时会出现dll缺失问题,所以我将代码修改为:

from distutils.core import setup
import py2exe
from glob import glob
data_files = [("Microsoft.VC100.CRT", glob(r'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\redist\\x86\\Microsoft.VC100.CRT\\*.*'))]

setup(data_files =data_files,console =['Crawler.py'])

我陷入了这个问题,所以任何和各种各样的帮助都会受到高度赞赏。

其他资讯: 我在用: Windows 7的, Python 2.7-32位

更新:  我在一个关于堆栈溢出的问题中找到了一个类似问题的建议,建议通过命令提示符运行EXE。我通过命令提示符运行程序并向我显示错误

Import error : No module named bs4

2 个答案:

答案 0 :(得分:3)

我能够成功构建一个工作的exe。以下是我采取的步骤,希望它们对将来面临这些问题的其他人有所帮助。

1)启动程序使用命令提示符,以便查看错误。

2)将我的所有代码(函数,类)放在主文件中。

3)重新安装最新版本的pip

4)使用pip

卸载并重新安装BeautifulSoup4
pip uninstall BeautifulSoup4
pip install  BeautifulSoup4

5)现在“jdcal”开始出现问题(在安装openpyxl时安装)

6)使用pip卸载openpyxl

7)使用pip卸载jdcal

8)使用pip重新安装openpyxl(它自动安装了jdcal)

9)现在exe运行完美。

答案 1 :(得分:1)

我的项目也在jdcal失败了。我在B-Abbasi的最后几步中取得了成功:

6)使用pip卸载openpyxl (在Win7上:pythonXX \ Scripts \ pip uninstall openpyxl)

7)使用pip卸载jdcal

8)使用pip重新安装openpyxl(它自动安装了jdcal)

9)现在exe运行完美。