Python PyAttributeError:';非类型';对象没有属性';组';错误
我正在尝试使用Python PyAttributeError:';非类型';对象没有属性';组';错误,python,linux,pandas,pyinstaller,pdfminer,Python,Linux,Pandas,Pyinstaller,Pdfminer,我正在尝试使用pyinstaller创建一个简单的独立脚本。该脚本仅使用pandas和pdfminer包。我还创建了一个全新的环境,只安装了这两个包及其依赖项。 我在运行pyinstaller--onefile ema\u pdf\u reader.spec时遇到以下错误,我的.spec文件如下所示: # -*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis(['ema_pdf_reader.py'],
pyinstaller
创建一个简单的独立脚本。该脚本仅使用pandas
和pdfminer
包。我还创建了一个全新的环境,只安装了这两个包及其依赖项。
我在运行pyinstaller--onefile ema\u pdf\u reader.spec
时遇到以下错误,我的.spec
文件如下所示:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['ema_pdf_reader.py'],
pathex=['/home/erik/PycharmProjects/simple_gui'],
binaries=[],
datas=[],
hiddenimports=['pandas','pdfminer'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='ema_pdf_reader',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True )
错误:
(clean_env) [erik@liara simple_gui]$ pyinstaller --onefile ema_pdf_reader.spec
34 INFO: PyInstaller: 3.6
34 INFO: Python: 3.8.2 (conda)
69 INFO: Platform: Linux-5.10.15-1-MANJARO-x86_64-with-glibc2.10
72 INFO: UPX is not available.
73 INFO: Extending PYTHONPATH with paths
['/home/erik/PycharmProjects/simple_gui',
'/home/erik/PycharmProjects/simple_gui']
73 INFO: checking Analysis
73 INFO: Building Analysis because Analysis-00.toc is non existent
73 INFO: Initializing module dependency graph...
74 INFO: Caching module graph hooks...
78 INFO: Analyzing base_library.zip ...
2247 INFO: Processing pre-find module path hook distutils
2247 INFO: distutils: retargeting to non-venv dir '/home/erik/miniconda3/envs/clean_env/lib/python3.8'
4327 INFO: Caching module dependency graph...
4424 INFO: running Analysis Analysis-00.toc
4448 INFO: Analyzing ema_pdf_reader.py
5378 INFO: Processing pre-safe import module hook six.moves
6929 INFO: Processing pre-find module path hook site
6929 INFO: site: retargeting to fake-dir '/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/fake-modules'
12802 INFO: Processing module hooks...
12802 INFO: Loading module hook "hook-xml.etree.cElementTree.py"...
12803 INFO: Loading module hook "hook-numpy.py"...
12803 INFO: Loading module hook "hook-pytz.py"...
12816 INFO: Loading module hook "hook-pandas.py"...
13457 INFO: Loading module hook "hook-distutils.py"...
13459 INFO: Loading module hook "hook-pkg_resources.py"...
13672 INFO: Processing pre-safe import module hook win32com
13879 WARNING: Hidden import "pkg_resources.py2_warn" not found!
13881 INFO: Excluding import '__main__'
13882 INFO: Removing import of __main__ from module pkg_resources
13883 INFO: Loading module hook "hook-pydoc.py"...
13883 INFO: Loading module hook "hook-_tkinter.py"...
13974 INFO: checking Tree
13979 INFO: checking Tree
13983 INFO: Loading module hook "hook-sysconfig.py"...
13993 INFO: Loading module hook "hook-cryptography.py"...
14149 INFO: Loading module hook "hook-setuptools.py"...
14570 INFO: Loading module hook "hook-encodings.py"...
14619 INFO: Loading module hook "hook-lib2to3.py"...
14621 INFO: Loading module hook "hook-sqlite3.py"...
14665 INFO: Loading module hook "hook-numpy.core.py"...
14666 INFO: MKL libraries found when importing numpy. Adding MKL to binaries
14667 INFO: Loading module hook "hook-xml.py"...
14790 INFO: Looking for ctypes DLLs
Traceback (most recent call last):
File "/home/erik/miniconda3/envs/clean_env/bin/pyinstaller", line 11, in <module>
sys.exit(run())
File "/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/__main__.py", line 114, in run
run_build(pyi_config, spec_file, **vars(args))
File "/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/__main__.py", line 65, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/building/build_main.py", line 734, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/building/build_main.py", line 681, in build
exec(code, spec_namespace)
File "ema_pdf_reader.spec", line 6, in <module>
a = Analysis(['ema_pdf_reader.py'],
File "/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/building/build_main.py", line 244, in __init__
self.__postinit__()
File "/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/building/datastruct.py", line 160, in __postinit__
self.assemble()
File "/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/building/build_main.py", line 440, in assemble
ctypes_binaries = scan_code_for_ctypes(co)
File "/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/depend/utils.py", line 143, in scan_code_for_ctypes
binaries = _resolveCtypesImports(binaries)
File "/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/depend/utils.py", line 317, in _resolveCtypesImports
load_ldconfig_cache()
File "/home/erik/miniconda3/envs/clean_env/lib/python3.8/site-packages/PyInstaller/depend/utils.py", line 400, in load_ldconfig_cache
path = m.groups()[-1]
AttributeError: 'NoneType' object has no attribute 'groups'
(清洁环境)[erik@liarasimple_gui]$pyinstaller--onefile ema_pdf_reader.spec
34信息:PyInstaller:3.6
34信息:Python:3.8.2(康达)
69信息:平台:Linux-5.10.15-1-MANJARO-x86_64-with-glibc2.10
72信息:UPX不可用。
73信息:使用路径扩展PYTHONPATH
['/home/erik/PycharmProjects/simple_gui',
“/home/erik/PycharmProjects/simple_gui”]
73信息:检查分析
73信息:建筑分析,因为Analysis-00.toc不存在
73信息:正在初始化模块依赖关系图。。。
74信息:缓存模块图形挂钩。。。
78信息:正在分析base_library.zip。。。
2247信息:处理预查找模块路径挂钩区
2247信息:distutils:重定目标为非venv dir'/home/erik/miniconda3/envs/clean_env/lib/python3.8'
4327信息:缓存模块依赖关系图。。。
4424信息:运行分析-00.toc
4448信息:分析ema\u pdf\u reader.py
5378信息:正在处理预安全导入模块hook six.moves
6929信息:正在处理预查找模块路径挂钩站点
6929信息:站点:重新定位到假目录“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/fake modules”
12802信息:处理模块挂钩。。。
12802信息:正在加载模块钩子“hook xml.etree.cElementTree.py”。。。
12803信息:加载模块挂钩“hook numpy.py”。。。
12803信息:加载模块挂钩“hook pytz.py”。。。
12816信息:加载模块挂钩“hook pandas.py”。。。
13457信息:加载模块挂钩“hook distutils.py”。。。
13459信息:加载模块hook“hook-pkg_resources.py”。。。
13672信息:正在处理预安全导入模块挂钩win32com
13879警告:未找到隐藏的导入“pkg_resources.py2_warn”!
13881信息:不包括导入“\uuuu main\uuuuuu”
13882信息:正在从模块pkg_资源中删除导入_main_
13883信息:加载模块钩子“hook pydoc.py”。。。
13883信息:加载模块挂钩“挂钩-\u tkinter.py”。。。
13974信息:正在检查树
13979信息:正在检查树
13983信息:正在加载模块挂钩“hook sysconfig.py”。。。
13993信息:加载模块钩子“hook cryptography.py”。。。
14149信息:加载模块挂钩“hook setuptools.py”。。。
14570信息:加载模块钩子“hook encodings.py”。。。
14619信息:加载模块挂钩“hook-lib2to3.py”。。。
14621信息:加载模块钩子“hook-sqlite3.py”。。。
14665信息:加载模块挂钩“hook numpy.core.py”。。。
14666信息:导入numpy时找到MKL库。向二进制文件添加MKL
14667信息:正在加载模块钩子“hook xml.py”。。。
14790信息:正在查找ctypes DLL
回溯(最近一次呼叫最后一次):
文件“/home/erik/miniconda3/envs/clean_env/bin/pyinstaller”,第11行,在
sys.exit(run())
文件“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/__main___u;.py”,第114行,正在运行
运行构建(pyi\u配置,规范文件,**vars(args))
文件“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/__main___u;.py”,第65行,在运行版本中
PyInstaller.building.build\u main.main(pyi\u配置,spec\u文件,**kwargs)
文件“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/building/build_main.py”,第734行,在main中
构建(specfile,kw.get('distpath'),kw.get('workpath'),kw.get('clean_build'))
文件“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/building/build_main.py”,第681行,内部版本
exec(代码、规范和命名空间)
文件“ema_pdf_reader.spec”,第6行,在
a=分析(['ema\u pdf\u reader.py'],
文件“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/building/build_main.py”,第244行,in_uinit__
self.\uuuu postinit\uuuuu()
文件“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/building/datastruct.py”,第160行,在__
self.assembly()
文件“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/building/build_main.py”,第440行,汇编
ctypes\u binaries=扫描ctypes的代码(co)
文件“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/depend/utils.py”,第143行,用于扫描类型代码
二进制文件=\u解析类型端口(二进制文件)
文件“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/depend/utils.py”,第317行,在_resolveTypesimports中
加载\u ldconfig\u缓存()
文件“/home/erik/miniconda3/envs/clean_env/lib/python3.8/site packages/PyInstaller/depend/utils.py”,第400行,在load\u ldconfig\u缓存中
path=m.groups()[-1]
AttributeError:“非类型”对象没有属性“组”
我需要在.spec文件中指定一些其他设置吗?到目前为止,我只是将外部包添加到HiddeImports中,其余的.spec文件是使用pyi makespec--onefile ema_pdf_reader.py自动生成的
ScriptByIt自身运行良好,创建仅使用标准库的独立脚本也可以正常工作
更新1:
此错误一定是由于检测到ctype DLL造成的。导入numpy时也会发生此错误。我尝试了不同版本的pyinstaller(3.6和4.2),但错误仍然存在。我还尝试使用pip而不是conda重新安装pyinstaller,但没有任何帮助
更新2:
在windows机器上执行相同的过程与预期的一样这里似乎()他们发现了类似的东西。他们的设置与我的非常相似。仍在阅读
编辑1:
我终于成功了。我必须:
1.-手动编辑文件“utils.py”并添加缺少的条件
2.-重新安装我的版本