当前位置:   article > 正文

pyinstaller 打包后运行 出现 ModuleNotFoundError: No module named ‘xxx‘_pyinstaller打包后缺少模块

pyinstaller打包后缺少模块

这个问题在网上答案可能很多:

下面给出鄙人的经历和参考:该问题的核心可能是 没有安装lib造成的,那么你可能会问,”我已经安装了呀,并且pycharm运行正常~“

这里要注意:新版本的pycharm现在都会在开发目录下创建一个venv的文件夹 您安装的lib有可能是在这个venv里面, 而不再全局的python安装目录里面!!

-------

然而,您使用的命令可能是基于 python安装目录里面 pyinstaller 。。

故,您只要打开python 的安装目录如:D:\python311\Scripts,,,在这个目录里打开cmd,如下图:

 再次执行缺失的  Module 的安装命令: ./pip3.exe install xxx 即可~  完后 ~

再次执行  pyinstaller  打包~~~ 码字真累!

---------------

在这,码字累,但时间宝贵! 鄙人给出 个人使用的pyinstaller  打包命令, 您只要复制到bat文件里,改改icon, 和 入口文件 py_file 即可,参考如下

  1. echo off
  2. rem https://pyinstaller.org/en/stable/usage.html#options
  3. rem 请把python:path/Scripts添加到系统路径
  4. rem cxfreeze,pyinstaller都在这个路径下
  5. rem !!!在windows下编写bat,路径使用[\],不要使用 [/]
  6. rem py文件,不要带后缀[.py]
  7. set curPath=%cd%
  8. set py_file=main
  9. rem 中间目录
  10. set out_dir=.\dist
  11. rem 自己的模块位置
  12. set my_py_module_path=.\
  13. rem 图标icon
  14. set icon=%curPath%\main.ico
  15. rem 解决:ModuleNotFoundError: No module named 'fastapi'
  16. set hidden_import=--hidden-import=uvicorn --hidden-import=fastapi --hidden-import=main
  17. echo %cd%
  18. rem warning: 在执行完毕会删除中间目录,同时会把exe拷贝到上层目录
  19. rem 所以建议把中间目录就设置在工作目录下
  20. rem 文档:https://pyinstaller.readthedocs.io/en/v3.5/
  21. rem LEVEL may be one of TRACE, DEBUG, INFO, WARN, ERROR, CRITICAL (default: INFO).
  22. pyinstaller --onefile --nowindowed %hidden_import% --distpath=%out_dir% --workpath=%out_dir%\build --specpath=%out_dir%\build --path=%my_py_module_path% --name=%py_file%.exe -y --clean --log-level=INFO --icon=%icon% %py_file%.py
  23. rem 复制到当前目录
  24. copy /Y /B %out_dir%\%py_file%.exe .\
  25. rem 删除目录
  26. rd /Q /s %out_dir%
  27. echo "finish!"
  28. rem --------------------
  29. rem 下面的命令可以用
  30. rem cxfreeze files_copy.py --target-dir ./build --include-path=../../ -O -OO -c --icon=copy.ico

注意在hidden_import隐藏了一个不能理解的module:--hidden-import=main

这一行是为了解决下面的这个错误:

参考:python - Running FastAPI multiple process error after pyinstaller - Stack Overflow

ERROR: Error loading ASGI app. Could not import module "main".

--------

打包后的exe, 在正式运行的时候,不能带有 reload=True , 否则会一直刷日志, 具体原因还不知晓~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/590975
推荐阅读
相关标签
  

闽ICP备14008679号