使用py2exe构建Python代码的可执行文件

4
我安装了“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'])

我遇到了这个问题,非常感谢您提供任何形式的帮助。
其他信息: 我使用的是: Windows7, Python 2.7-32位
更新: 我在stackoverflow上找到了一个类似问题的建议,建议通过命令提示符运行EXE。我通过命令提示符运行程序,显示了错误。
Import error : No module named bs4

1
请看这里:http://stackoverflow.com/questions/21167026/py2exe-doesnt-find-bs4 - David Reeve
软件包出了问题,重新安装后问题得到解决。谢谢。 - B-Abbasi
2个回答

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

我的项目在jdcal上也失败了。我只在B-Abbasi的最后几个步骤中成功:

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

7)使用pip卸载jdcal

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

9)现在exe文件可以完美运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接