【问题标题】:PyInstaller maximum recursion error after pre-safe import module hook [six.moves]预安全导入模块挂钩后 PyInstaller 最大递归错误 [six.moves]
【发布时间】:2018-10-09 02:54:25
【问题描述】:

我正在尝试使用 PyInstaller 将我的 python3.5 项目转换为 .exe 文件 我的主文件是 SegTool.py

这是我的 .spec 文件:

# -*- mode: python -*-

block_cipher = None

a = Analysis(['SegTool.py'],
              pathex=['consts.py', 'FetalMRI_about.py', 'FetalMRI_mainwindow.py', 'FetalMRI_workspace.py', 'image_label.py', 'main_window.py', 'scan_file.py', 'segment3d_itk.py', 'Shapes.py', 'workspace.py', 'C:\\Users\\Keren Meron\\Documents\\School Work\\Fetal MRI\\FetalSegBrainTool'],
            binaries=[],
            datas=[('images', 'images')],
            hiddenimports=[],
            hookspath=[],
            runtime_hooks=[],
            excludes=[],
            win_n_no_prefer_redirects=False,
            win_private_assemblies=False,
            cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
         cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='SegTool',
          debug=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
           a.binaries,
           a.zipfiles,
           a.datas,
           strip=False,
           upx=True,
           name='SegTool')

也许我对相关的钩子和依赖关系了解不够,但我遇到了崩溃:

File "C:\Users\Keren Meron\WinPython-64bit-3.5.3.1Qt5\python-3.5.3.amd64\lib\ast.py", line 245, in visit
    return visitor(node)
File "C:\Users\Keren Meron\WinPython-64bit-3.5.3.1Qt5\python-3.5.3.amd64\lib\ast.py", line 253, in generic_visit
    self.visit(item)
File "C:\Users\Keren Meron\WinPython-64bit-3.5.3.1Qt5\python-3.5.3.amd64\lib\ast.py", line 245, in visit
    return visitor(node)
RecursionError: maximum recursion depth exceeded

回溯前的输出(DEBUG 和 INFO 开启):

10923 INFO: Caching module hooks... 10937 INFO: Analyzing SegTool.py 13458 INFO: Processing pre-safe import module hook six.moves 14204 INFO: Processing pre-safe import module hook win32com 14205 DEBUG: win32com: extending __path__ with dir 'C:\\Users\\Keren Meron\\WinPython-64bit-3.5.3.1Qt5\\python-3.5.3.amd64\\lib\\site-packages\\win32comext' 14604 INFO: Processing pre-find module path hook distutils 16281 INFO: Processing pre-find module path hook site 16284 INFO: site: retargeting to fake-dir 'C:\\Users\\Keren Meron\\WinPython-64bit-3.5.3.1Qt5\\python-3.5.3.amd64\\lib\\site-packages\\PyInstaller\\fake-modules' 40968 INFO: Processing pre-safe import module hook requests.packages.urllib3.packages.six.moves 51591 DEBUG: load_module: SyntaxError in 'C:\\Users\\Keren Meron\\WinPython-64bit-3.5.3.1Qt5\\python-3.5.3.amd64\\lib\\site-packages\\jinja2\\asyncsupport.py'

请帮忙,我需要做什么来解决这个问题?

谢谢

【问题讨论】:

    标签: python exe python-3.5 pyinstaller six


    【解决方案1】:

    pip install --upgrade setuptools

    希望这能解决您的问题。

    【讨论】:

      【解决方案2】:

      试试下面的命令强制重装!

      pip install --force-reinstall --no-binary :all: pyinstaller
      

      【讨论】:

        【解决方案3】:

        这可能为时已晚,但我也遇到了这个问题,并通过在顶部的规范文件中添加几行代码来修复它:

        # -*- mode: python -*-
        import sys
        sys.setrecursionlimit(5000)
        
        block_cipher = None
        

        如果它仍然打开,希望这也能解决您的问题!

        【讨论】:

          猜你喜欢
          • 2018-12-03
          • 2014-07-05
          • 2021-01-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多