- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我之前只使用过一次 PyInstaller,它在 wxPython 上工作得非常直接。不过,我目前正在尝试构建一个不同的项目。从命令行运行时,该项目运行良好。但是,在构建之后,它永远不会启动主窗口 (wxPython)。
我已在构建规范中将调试和控制台标志设置为 True。我还添加了 PyInstaller 手册指定的详细选项( [('v', '', 'OPTION')]
)。这是规范:
# -*- 模式:python -*-
# basedir = os.path.realpath(os.path.dirname(__file__))
basedir = os.getcwd()
# 构建图标 toc。
icon_toc = []
对于 os.walk(os.path.join(basedir, 'icons')) 中的目录:
对于目录 [2] 中的图标:
icon_toc.append(
(
os.path.join('icons', icon),
os.path.join(dir[0], icon),
'数据',
)
)
a = 分析(
['application.py'],
pathex=['.', './lib', '../broadpy/lib', '../broadpy/vendor'],
隐藏进口=[],
钩子(Hook)路径=无
)
a.datas += icons_toc
pyz = PYZ(a.pure)
exe = EXE(
比兹,
a.scripts + [('v', '', 'OPTION')],
a.二进制文件,
a.zip 文件,
a.数据,
名称=os.path.join(
'dist', '地址cleaner.exe'
),
调试=真,
条=无,
upx=真,
控制台=真
)
应用程序 = 捆绑(
可执行程序,
name=os.path.join('dist', '地址cleaner.app')
)
现在,当我运行构建的可执行文件时,我得到以下输出:
C:\Users\tomas\Dropbox\Broadnet\address_cleaner>"C:\Users\tomas\Dropbox\Broadnet\address_cleaner\dist\Addresscleaner.exe"
_MEIPASS2 为空
存档名称是 C:\Users\tomas\Dropbox\Broadnet\address_cleaner\dist\Addresscleaner.exe
提取二进制文件
将自己作为 child 执行,设置为运行 child
创建子进程
等待子进程完成...
_MEIPASS2 是 C:/Users/tomas/AppData/Local/Temp/_MEI30762/
存档名称是 C:\Users\tomas\Dropbox\Broadnet\address_cleaner\dist\Addresscleaner.exe
已经在 child - 运行!
list 路径:C:/Users/tomas/AppData/Local/Temp/_MEI30762/Addresscleaner.exe.manifest
已创建激活上下文
激活上下文已激活
C:/Users/tomas/AppData/Local/Temp/_MEI30762/python27.dll
操纵环境
PYTHONPATH=C:/Users/tomas/AppData/Local/Temp/_MEI30762;C:/Users/tomas/Dropbox/Broadnet/address_cleaner/dist
PYTHONHOME=C:/Users/tomas/AppData/Local/Temp/_MEI30762/
v
# 安装 zipimport 钩子(Hook)
导入 zipimport # 内置
# 安装 zipimport 钩子(Hook)
从 CArchive 导入模块
导入编码(marshal) # 内置
提取的 iu
导入 imp # 内置
导入 nt # 内置
提取结构
import _struct # 内置
提取文件
安装导入钩子(Hook)
out00-PYZ.pyz
运行脚本
导入 zlib # 内置
导入错误号 # 内置
导入 _weakref# 内置
导入 _codecs # 内置
导入 _sre # 内置
import _collections # 内置
导入运算符 # 内置
导入 itertools # 内置
导入 _bisect # 内置
导入 _heapq # 内置
导入线程 # 内置
导入数学 # 内置
导入 binascii # 内置
import _hashlib # 从 C:\Users\tomas\AppData\Local\Temp\_MEI30762\_hashlib.pyd 动态加载
import _random # 内置
导入 cStringIO # 内置
回溯(最近一次调用最后一次):
文件“”,第 65 行,在
文件“C:\Users\tomas\Downloads\pyinstaller-2.0\PyInstaller\loader\iu.py”,第 386 行,在 importHook
文件“C:\Users\tomas\Downloads\pyinstaller-2.0\PyInstaller\loader\iu.py”,第 480 行,在 doimport
文件“C:\Users\tomas\Dropbox\Broadnet\address_cleaner\build\pyi.win32\buildspec\out00-PYZ.pyz\win32com”,第 5 行,在
文件“C:\Users\tomas\Downloads\pyinstaller-2.0\PyInstaller\loader\iu.py”,第 386 行,在 importHook
文件“C:\Users\tomas\Downloads\pyinstaller-2.0\PyInstaller\loader\iu.py”,第 459 行,在 doimport
文件“C:\Users\tomas\Downloads\pyinstaller-2.0\PyInstaller\loader\iu.py”,第 248 行,在 getmod 中
文件“C:\Users\tomas\Downloads\pyinstaller-2.0\PyInstaller\loader\iu.py”,第 105 行,在 getmod 中
导入错误:DLL 加载失败:找不到指定的模块。
RC:-1 来自 pyi_rth_win32comgenpy
好的。
停用激活上下文
释放激活上下文
完毕
# 清除 __builtin__._
# 清除 sys.path
# 清除 sys.argv
# 清除 sys.ps1
# 清除 sys.ps2
# 清除 sys.exitfunc
# 清除 sys.exc_type
# 清除 sys.exc_value
# 清除 sys.exc_traceback
# 清除 sys.last_type
# 清除 sys.last_value
# 清除 sys.last_traceback
# 清除 sys.path_hooks
# 清除 sys.path_importer_cache
# 清除 sys.meta_path
# 清除 sys.flags
# 清除 sys.float_info
# 恢复 sys.stdin
# 恢复 sys.stdout
# 恢复 sys.stderr
# 清理 __main__
# 清理[1] cStringIO
# 清理[1] __future__
# 清理[1] _collections
# 清理[1] 编码
# 清理[1] 站点
# 清理[1] atexit
# 清理[1] 关闭
# 清理[1] _heapq
# 清理[1] _weakref
# 清理[1] abc
# 清理[1] _bisect
# 清理[1] _weakrefset
# 清理[1] 临时文件
# 清理[1] binascii
# 清理[1] sre_constants
# 清理[1] 集合
# 清理[1] _codecs
# 清理[1] _warnings
# 清理[1] 数学
# 清理[1] 操作符
# 清理[1] fnmatch
# 清理[1] 编解码器
#清理[1]重新
# 清理[1] _struct
# 清理[1] 线程
#清理[1]关键字
# 清理[1] 信号
#清理[1]随机
# 清理[1] itertools
# 清理[1] encodings.aliases
# 清理[1] 异常
# 清理[1] heapq
# 清理[1] sre_compile
# 清理[1] _sre
# 清理[1] _random
# 清理[1] hashlib
# 清理[1] 平分
# 清理[1] sre_parse
# 清理[1] _hashlib
# 清理[2] copy_reg
# 清理[2] iu
# 清理[2] os.path
# 清理[2] 存档
# 清理[2] 结构
# 清理[2] 错误号
# 清理[2] 小鬼
# 清理[2] _abcoll
# 清理[2] ntpath
# 清理[2] nt
# 清理[2] 通用路径
#清理[2]统计
# 清理[2] zipimport
# 清理[2] 警告
# 清理[2] UserDict
# 清理[2] 类型
# 清理[2] zlib
# 清理[2] 线缓存
# 清理[2] 操作系统
# 清理[2] 编码(marshal)
# 清理系统
# 清理 __builtin__
# 清理整数:41 个未释放的整数
# 清理浮点数:31 个未释放的浮点数
回到家长...
C:\Users\tomas\Dropbox\Broadnet\address_cleaner\dist\Addresscleaner.exe 的释放状态
所以现在我看到 iu.py 提出了一个异常,但我仍然不知道为什么。我还发现运行我的 Downloads/py-installer 文件夹中的 python 文件非常神秘,即使我删除了该文件夹。
总而言之 - 我必须采取哪些步骤才能准确找出应用程序在启动时崩溃的原因?
我在 Windows 8 上使用 PyInstaller 2.0 和 Python 2.7.3。单独这些事实都不会导致此错误,因为我正在成功构建另一个项目。
最佳答案
Pyinstaller sometimes needs explicit references in the .spec file to correctly package dependencies .
如需更多信息,请参阅 ensuring proper import statements so that pyinstaller recognizes them .
例如,如果从 Python 模块之一的外部(例如,从 pyinstaller 不会读取的 jar 或 c++ 文件)导入关键依赖项,则很容易错过它们。
dependency walker可能是您系统地跟踪丢失的 DLL 的第一道防线。只需下载它,然后加载您的 exe 或附属 dll 即可查看哪些缺少依赖项。然后,这只是一种追查它们并手动将它们与 .exe 一起添加到您的目录中的野鹅追逐(假设您的包装在一个目录中)。
作为旁注,对于 pyinstaller 2.1 (python 2.7.6),我修改了 pyi_importers.py
文件至少尝试打印导入时哪个模块是麻烦制造者:
# line 409 of Pyinstaller.loader.pyi_importers.py
try: module = imp.load_module(fullname, fp, filename, self._c_ext_tuple)
except Exception as e:
print fullname # at least tells you what module couldn't be imported
raise e
关于python - 如何调试不起作用的 PyInstaller 构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765801/
我正在处理一组标记为 160 个组的 173k 点。我想通过合并最接近的(到 9 或 10 个组)来减少组/集群的数量。我搜索过 sklearn 或类似的库,但没有成功。 我猜它只是通过 knn 聚类
我有一个扁平数字列表,这些数字逻辑上以 3 为一组,其中每个三元组是 (number, __ignored, flag[0 or 1]),例如: [7,56,1, 8,0,0, 2,0,0, 6,1,
我正在使用 pipenv 来管理我的包。我想编写一个 python 脚本来调用另一个使用不同虚拟环境(VE)的 python 脚本。 如何运行使用 VE1 的 python 脚本 1 并调用另一个 p
假设我有一个文件 script.py 位于 path = "foo/bar/script.py"。我正在寻找一种在 Python 中通过函数 execute_script() 从我的主要 Python
这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。 问题到底是什么? 我想运行 2 个脚本。在第一个脚本中,我调用另一个脚本,但我希望它们继续并行,而不是在两个单独的线程中。主要是我不希望第
我有一个带有 python 2.5.5 的软件。我想发送一个命令,该命令将在 python 2.7.5 中启动一个脚本,然后继续执行该脚本。 我试过用 #!python2.7.5 和http://re
我在 python 命令行(使用 python 2.7)中,并尝试运行 Python 脚本。我的操作系统是 Windows 7。我已将我的目录设置为包含我所有脚本的文件夹,使用: os.chdir("
剧透:部分解决(见最后)。 以下是使用 Python 嵌入的代码示例: #include int main(int argc, char** argv) { Py_SetPythonHome
假设我有以下列表,对应于及时的股票价格: prices = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] 我想确定以下总体上最
所以我试图在选择某个单选按钮时更改此框架的背景。 我的框架位于一个类中,并且单选按钮的功能位于该类之外。 (这样我就可以在所有其他框架上调用它们。) 问题是每当我选择单选按钮时都会出现以下错误: co
我正在尝试将字符串与 python 中的正则表达式进行比较,如下所示, #!/usr/bin/env python3 import re str1 = "Expecting property name
考虑以下原型(prototype) Boost.Python 模块,该模块从单独的 C++ 头文件中引入类“D”。 /* file: a/b.cpp */ BOOST_PYTHON_MODULE(c)
如何编写一个程序来“识别函数调用的行号?” python 检查模块提供了定位行号的选项,但是, def di(): return inspect.currentframe().f_back.f_l
我已经使用 macports 安装了 Python 2.7,并且由于我的 $PATH 变量,这就是我输入 $ python 时得到的变量。然而,virtualenv 默认使用 Python 2.6,除
我只想问如何加快 python 上的 re.search 速度。 我有一个很长的字符串行,长度为 176861(即带有一些符号的字母数字字符),我使用此函数测试了该行以进行研究: def getExe
list1= [u'%app%%General%%Council%', u'%people%', u'%people%%Regional%%Council%%Mandate%', u'%ppp%%Ge
这个问题在这里已经有了答案: Is it Pythonic to use list comprehensions for just side effects? (7 个答案) 关闭 4 个月前。 告
我想用 Python 将两个列表组合成一个列表,方法如下: a = [1,1,1,2,2,2,3,3,3,3] b= ["Sun", "is", "bright", "June","and" ,"Ju
我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明 here构建包含在我的发行版中的教程 Boost-Pyth
学习 Python,我正在尝试制作一个没有任何第 3 方库的网络抓取工具,这样过程对我来说并没有简化,而且我知道我在做什么。我浏览了一些在线资源,但所有这些都让我对某些事情感到困惑。 html 看起来
我是一名优秀的程序员,十分优秀!