windows系统cmd使用pyinstaller打包python源码生成可执行文件时报错ModuleNotFoundError: No module named ‘PyInstaller.log‘

在学习python时使用到PyInstaller库,在将我自己的代码打包成可执行文件时使用命令行:

pyinstaller -F <文件名.py>

运行后报错:

D:\Python\learn_python>pyinstaller -F CalBMIv3.py
197 INFO: PyInstaller: 5.3
197 INFO: Python: 3.10.2
206 INFO: Platform: Windows-10-10.0.19044-SP0
207 INFO: wrote D:\Python\learn_python\CalBMIv3.spec
210 INFO: UPX is not available.
212 INFO: Extending PYTHONPATH with paths
['D:\\Python\\learn_python']
Traceback (most recent call last):
  File "D:\Python\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "D:\Python\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "D:\Python\Scripts\pyinstaller.exe\__main__.py", line 7, in <module>
  File "D:\Python\lib\site-packages\PyInstaller\__main__.py", line 178, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "D:\Python\lib\site-packages\PyInstaller\__main__.py", line 59, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "D:\Python\lib\site-packages\PyInstaller\building\build_main.py", line 934, in main
    build(specfile, distpath, workpath, clean_build)
  File "D:\Python\lib\site-packages\PyInstaller\building\build_main.py", line 856, in build
    exec(code, spec_namespace)
  File "D:\Python\learn_python\CalBMIv3.spec", line 7, in <module>
    a = Analysis(
  File "D:\Python\lib\site-packages\PyInstaller\building\build_main.py", line 348, in __init__
    self.hookspath += discover_hook_directories()
  File "D:\Python\lib\site-packages\PyInstaller\isolated\_parent.py", line 269, in wrapped
    return call(function, *args, **kwargs)
  File "D:\Python\lib\site-packages\PyInstaller\isolated\_parent.py", line 238, in call
    return isolated.call(function, *args, **kwargs)
  File "D:\Python\lib\site-packages\PyInstaller\isolated\_parent.py", line 176, in call
    raise RuntimeError(f"Child process call to {function.__name__}() failed with:\n" + output)
RuntimeError: Child process call to discover_hook_directories() failed with:
  File "D:\Python\lib\site-packages\PyInstaller\isolated\_child.py", line 63, in run_next_command
    output = function(*args, **kwargs)
  File "D:\Python\lib\site-packages\PyInstaller\building\build_main.py", line 106, in discover_hook_directories
    from PyInstaller.log import logger
ModuleNotFoundError: No module named 'PyInstaller.log'; 'PyInstaller' is not a package

 最后一行提示没有找到相应的模块,我怀疑是PyInstaller库安装出了问题,于是再次运行安装命令:

D:\Python>pip install pyinstaller
Requirement already satisfied: pyinstaller in d:\python\lib\site-packages (5.3)
Requirement already satisfied: pefile>=2022.5.30 in d:\python\lib\site-packages (from pyinstaller) (2022.5.30)
Requirement already satisfied: altgraph in d:\python\lib\site-packages (from pyinstaller) (0.17.2)
Requirement already satisfied: setuptools in d:\python\lib\site-packages (from pyinstaller) (60.9.3)
Requirement already satisfied: pyinstaller-hooks-contrib>=2021.4 in d:\python\lib\site-packages (from pyinstaller) (2022.9)
Requirement already satisfied: pywin32-ctypes>=0.2.0 in d:\python\lib\site-packages (from pyinstaller) (0.2.0)
Requirement already satisfied: future in d:\python\lib\site-packages (from pefile>=2022.5.30->pyinstaller) (0.18.2)

很明显已经正确安装在d:\python\lib\site-packages路径下,

而我在打包时的路径在D:\Python\learn_python下,但是这个路径不包含pyinstaller的安装路径,这可能就是报错的原因,于是我在D:\Python路径下再次进行打包,结果

 提示找不到我的daydayup1,py文件,而它明明就在其下的learn_python文件夹中,于是我将learn_python中的文件转移到python文件夹下,再次运行

 成功了!

打开python文件夹,生成了dist,build文件夹和.spac文件,其中我们想要的可执行文件就在dist文件夹里.build文件是可以删除的.

总结:

要将需要打包的源码文件放在和pyinstaller库(默认安装在python\lib\site-packages路径下,可以再次执行安装命令查看)相同的目录下,再执行第一条命令即可

 

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值