PyInstaller TypeError:预期为 str、bytes 或 os.PathLike 对象,而不是 NoneType

问题描述 投票:0回答:1

它加载模块钩子一段时间,然后出错。这是完整的终端日志:

PS D:\Documents\files> python -m PyInstaller -F click.py
2022 INFO: PyInstaller: 5.13.2
2023 INFO: Python: 3.11.3
2445 INFO: Platform: Windows-10-10.0.19045-SP0
2449 INFO: wrote D:\Documents\files\click.spec
2458 INFO: Extending PYTHONPATH with paths
['D:\\Documents\\files']
4621 INFO: checking Analysis
4622 INFO: Building Analysis because Analysis-00.toc is non existent
4623 INFO: Initializing module dependency graph...
4626 INFO: Caching module graph hooks...
4645 INFO: Analyzing base_library.zip ...
11399 INFO: Loading module hook 'hook-encodings.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
13271 INFO: Loading module hook 'hook-heapq.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
14586 INFO: Loading module hook 'hook-pickle.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
16406 INFO: Caching module dependency graph...
16558 INFO: running Analysis Analysis-00.toc
16565 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
  required by C:\Python311\python.exe
16975 INFO: Analyzing D:\Documents\files\click.py
17030 INFO: Loading module hook 'hook-jira.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
20033 INFO: Loading module hook 'hook-charset_normalizer.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
20219 INFO: Loading module hook 'hook-certifi.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
20392 INFO: Loading module hook 'hook-packaging.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
20428 INFO: Loading module hook 'hook-PIL.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
20500 INFO: Loading module hook 'hook-PIL.Image.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
22297 INFO: Loading module hook 'hook-xml.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
22334 INFO: Loading module hook 'hook-xml.etree.cElementTree.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
22441 INFO: Loading module hook 'hook-xml.dom.domreg.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
23042 INFO: Loading module hook 'hook-platform.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
23069 INFO: Loading module hook 'hook-sysconfig.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
23534 INFO: Loading module hook 'hook-numpy.py' from 'C:\\Python311\\Lib\\site-packages\\numpy\\_pyinstaller'...
24459 INFO: Loading module hook 'hook-difflib.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
24801 INFO: Loading module hook 'hook-multiprocessing.util.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
25790 INFO: Loading module hook 'hook-psutil.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
26967 INFO: Loading module hook 'hook-PIL.ImageFilter.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
28011 INFO: Loading module hook 'hook-pandas.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
33390 INFO: Loading module hook 'hook-pytz.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
33752 INFO: Loading module hook 'hook-pkg_resources.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
40543 INFO: Loading module hook 'hook-pandas.io.formats.style.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
43024 INFO: Loading module hook 'hook-IPython.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
48245 INFO: Loading module hook 'hook-pygments.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
54602 INFO: Loading module hook 'hook-importlib_metadata.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
55322 INFO: Processing pre-safe import module hook six.moves from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\pre_safe_import_module\\hook-six.moves.py'.
56632 INFO: Loading module hook 'hook-wcwidth.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
57972 INFO: Loading module hook 'hook-jedi.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
60003 INFO: Loading module hook 'hook-parso.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
61637 INFO: Loading module hook 'hook-sqlite3.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
63922 INFO: Loading module hook 'hook-zmq.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
67211 INFO: Loading module hook 'hook-platformdirs.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
68222 INFO: Processing pre-safe import module hook gi from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\pre_safe_import_module\\hook-gi.py'.
69397 INFO: Loading module hook 'hook-pandas.plotting.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
71702 INFO: Loading module hook 'hook-plotly.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
101827 INFO: Loading module hook 'hook-dash_bootstrap_components.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
101927 INFO: Loading module hook 'hook-dash.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
103309 INFO: Loading module hook 'hook-jinja2.py' from 'C:\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
105337 INFO: Processing module hooks...
163556 INFO: Loading module hook 'hook-PIL.SpiderImagePlugin.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
166580 INFO: Loading module hook 'hook-_tkinter.py' from 'C:\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'...
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Python311\Lib\site-packages\PyInstaller\__main__.py", line 198, in <module>
    run()
  File "C:\Python311\Lib\site-packages\PyInstaller\__main__.py", line 180, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "C:\Python311\Lib\site-packages\PyInstaller\__main__.py", line 61, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "C:\Python311\Lib\site-packages\PyInstaller\building\build_main.py", line 1019, in main
    build(specfile, distpath, workpath, clean_build)
  File "C:\Python311\Lib\site-packages\PyInstaller\building\build_main.py", line 944, in build
    exec(code, spec_namespace)
  File "D:\Documents\files\click.spec", line 7, in <module>
    a = Analysis(
        ^^^^^^^^^
  File "C:\Python311\Lib\site-packages\PyInstaller\building\build_main.py", line 429, in __init__
    self.__postinit__()
  File "C:\Python311\Lib\site-packages\PyInstaller\building\datastruct.py", line 184, in __postinit__
    self.assemble()
  File "C:\Python311\Lib\site-packages\PyInstaller\building\build_main.py", line 596, in assemble
    self.graph.process_post_graph_hooks(self)
  File "C:\Python311\Lib\site-packages\PyInstaller\depend\analysis.py", line 329, in process_post_graph_hooks
    module_hook.post_graph(analysis)
  File "C:\Python311\Lib\site-packages\PyInstaller\depend\imphook.py", line 447, in post_graph
    self._process_hook_func(analysis)
  File "C:\Python311\Lib\site-packages\PyInstaller\depend\imphook.py", line 469, in _process_hook_func
    self._hook_module.hook(hook_api)
  File "C:\Python311\Lib\site-packages\PyInstaller\hooks\hook-_tkinter.py", line 27, in hook
    hook_api.add_datas(collect_tcl_tk_files(hook_api.__file__))
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\PyInstaller\utils\hooks\tcl_tk.py", line 245, in collect_tcl_tk_files
    tcl_root, tk_root = _find_tcl_tk(tkinter_ext_file)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    tk_dir = os.path.join(os.path.dirname(tcl_dir), f"tk{tk_version}")
                          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen ntpath>", line 251, in dirname
  File "<frozen ntpath>", line 213, in split
TypeError: expected str, bytes or os.PathLike object, not NoneType

我正在使用 Python 3.11.3、PyInstaller 5.13.2,并使用

python -m PyInstaller -F click.py
在文件 click.py 上运行 PyInstaller。

此脚本的输入是 2 个 Excel 电子表格,未包含在最终的 .exe 文件中。

我的一位同事在另一台计算机上尝试过(运行Python 3.11.6,PyInstaller 5.13.2)并且它有效。我尝试在 PyInstaller 6.3.0 上运行,但失败了。

python pyinstaller
1个回答
0
投票

同样的错误出现在这里,做了一些挖掘,看起来问题是它找不到 tcl/tk 库。 AFAIK Python 与 TKL 和 TC 捆绑在一起,因此您可能只需将环境变量

TCL_LIBRARY
TK_LIBRARY
设置为系统上各自的路径。

如果您正在使用像 conda 或 venv 这样的虚拟环境管理器,您可能应该将它们设置在那里,但如果您只想要一个通用的解决方案,您几乎应该能够粘贴建议的解决方法here(并在下面稍作编辑)在导入 tkinter 之前。

import os
import sys
os.environ["TCL_LIBRARY"] = os.path.join(
    sys.base_prefix, "lib", "tcl8.6"
)
os.environ["TK_LIBRARY"] = os.path.join(
    sys.base_prefix, "lib", "tk8.6"
)
© www.soinside.com 2019 - 2024. All rights reserved.