• pyinstaller 错误排查的验证史


    在pyinstaller打包时出现如下错误,很明显感觉是路径被转义 或者历史迁移导致的

    报错路径:OSError: [WinError 123] 文件名、目录名或卷标语法不正确。: D:\t_job\x07naconda3_20201121\\Lib\\site-packages'

    安装路径:File "D:\11_job\anaconda3_20201121\

    1. (base) H:\资料整理-222\pyMyproject\001模块验证\pyinstall验证>pyinstaller -c -F create_file.py
    2. 7043 INFO: PyInstaller: 6.1.0
    3. 7044 INFO: Python: 3.8.5 (conda)
    4. 7045 INFO: Platform: Windows-7-6.1.7601-SP1
    5. 7049 INFO: wrote H:\资料整理-222\pyMyproject\001模块验证\pyinstall验证\create_file.spec
    6. my yiyyyyyyyy H:\资料整理-222\pyMyproject\001模块验证\pyinstall验证\create_file.spec H:\资料整理-222\pyMyproject\001模块验证\pyinstall验证\dist H:\资料整理-222\pyMyproject\001模块验
    7. 证\pyinstall验证\build False
    8. 7077 INFO: Extending PYTHONPATH with paths
    9. ['H:\\资料整理-222']
    10. 8230 INFO: checking Analysis
    11. 8231 INFO: Building Analysis because Analysis-00.toc is non existent
    12. 8232 INFO: Initializing module dependency graph...
    13. 8233 INFO: Caching module graph hooks...
    14. 8304 INFO: Analyzing base_library.zip ...
    15. 24462 INFO: Loading module hook 'hook-heapq.py' from 'D:\\11_job\\anaconda3_20201121\\lib\\site-packages\\PyInstaller\\hooks'...
    16. 25148 INFO: Loading module hook 'hook-encodings.py' from 'D:\\11_job\\anaconda3_20201121\\lib\\site-packages\\PyInstaller\\hooks'...
    17. 36409 INFO: Loading module hook 'hook-pickle.py' from 'D:\\11_job\\anaconda3_20201121\\lib\\site-packages\\PyInstaller\\hooks'...
    18. 38155 INFO: Caching module dependency graph...
    19. 38587 INFO: Running Analysis Analysis-00.toc
    20. 38587 INFO: Looking for Python shared library...
    21. 38621 INFO: Using Python shared library: D:\11_job\anaconda3_20201121\python38.dll
    22. 38638 INFO: Analyzing H:\资料整理-222\pyMyproject\001模块验证\pyinstall验证\create_file.py
    23. 38643 INFO: Processing module hooks...
    24. 38667 INFO: Looking for ctypes DLLs
    25. 38687 INFO: Analyzing run-time hooks ...
    26. 38699 INFO: Looking for dynamic libraries
    27. 39017 INFO: Extra DLL search directories (AddDllDirectory): []
    28. 39017 INFO: Extra DLL search directories (PATH): []
    29. my orig_paths::: ['D:\\11_job\\anaconda3_20201121', 'D:\\11_job\\anaconda3_20201121\\lib\\site-packages', 'D:\t_job\x07naconda3_20201121\\Lib\\site-packages']
    30. Traceback (most recent call last):
    31. File "D:\11_job\anaconda3_20201121\lib\runpy.py", line 194, in _run_module_as_main
    32. return _run_code(code, main_globals, None,
    33. File "D:\11_job\anaconda3_20201121\lib\runpy.py", line 87, in _run_code
    34. exec(code, run_globals)
    35. File "D:\11_job\anaconda3_20201121\Scripts\pyinstaller.exe\__main__.py", line 7, in
    36. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\__main__.py", line 205, in _console_script_run
    37. run()
    38. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\__main__.py", line 189, in run
    39. run_build(pyi_config, spec_file, **vars(args))
    40. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\__main__.py", line 61, in run_build
    41. PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
    42. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\building\build_main.py", line 1043, in main
    43. build(specfile, distpath, workpath, clean_build)
    44. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\building\build_main.py", line 982, in build
    45. exec(code, spec_namespace)
    46. File "H:\资料整理-222\pyMyproject\001模块验证\pyinstall验证\create_file.spec", line 4, in
    47. a = Analysis(
    48. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\building\build_main.py", line 468, in __init__
    49. self.__postinit__()
    50. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\building\datastruct.py", line 184, in __postinit__
    51. self.assemble()
    52. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\building\build_main.py", line 800, in assemble
    53. self.binaries.extend(find_binary_dependencies(self.binaries, collected_packages))
    54. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\building\build_main.py", line 232, in find_binary_dependencies
    55. return bindepend.binary_dependency_analysis(binaries, search_paths=extra_libdirs)
    56. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\depend\bindepend.py", line 122, in binary_dependency_analysis
    57. parent_dir_preservation_paths = _get_paths_for_parent_directory_preservation()
    58. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\depend\bindepend.py", line 74, in _get_paths_for_parent_directory_preservation
    59. print('my orig_paths list:::',[pathlib.Path(path).resolve() for path in orig_paths])
    60. File "D:\11_job\anaconda3_20201121\lib\site-packages\PyInstaller\depend\bindepend.py", line 74, in
    61. print('my orig_paths list:::',[pathlib.Path(path).resolve() for path in orig_paths])
    62. File "D:\11_job\anaconda3_20201121\lib\pathlib.py", line 1177, in resolve
    63. s = self._flavour.resolve(self, strict=strict)
    64. File "D:\11_job\anaconda3_20201121\lib\pathlib.py", line 205, in resolve
    65. s = self._ext_to_normal(_getfinalpathname(s))
    66. OSError: [WinError 123] 文件名、目录名或卷标语法不正确。: 'D:\t_job\x07naconda3_20201121\\Lib\\site-packages'

    根据报错路径,找到path的变量位置,修改源码,打印path 确认问题点,因为pyinstaller是安装程序不能debug(print是debug的另一种形式)

     pathlib.Path(path).resolve() for path in orig_paths

    发现是  site.getusersitepackages() 返回影响,进一步查询,找到如下的位置,配置了USER_SITE的环境变量,在字符串前面加上r表示不转义 ,即可解决;

    附注,除了 \11 还有\a(naconda) 也进行了转义

  • 相关阅读:
    Spring使用注解开发
    Arduino 基础语法
    [附源码]java毕业设计个人事务管理系统
    策略验证_买入口诀_身抱多线好景出现
    fission源码分析--fission调用http请求流程分析
    ubuntu20.04桌面蓝屏问题解决
    云计算:火山引擎云原生大数据在金融行业的实践
    cesium火箭发射,模型控制,模型动画,模型移动
    【线性代数基础进阶】矩阵-part2
    PowerDesigner反向导入表+PowerDesigner的ER图设计+PowerDesigner连接外键的线(版本16.5)
  • 原文地址:https://blog.csdn.net/qq_37609701/article/details/134300927