首页 > 解决方案 > PyInstaller 3.6:模块 importlib 没有属性“机器”

问题描述

我在尝试运行 PyInstaller 3.6 生成的可执行文件时遇到任何问题。

我的代码在空闲时运行良好,但在制成可执行文件时无法运行。

我收到以下错误:

AttributeError:模块“importlib”没有属性“machinery”

这种方法似乎只在使用 PyInstaller 时才抛出错误;

def getVariables(filename):
    '''Loads variables from variables.txt'''
    try:
        import importlib
        import types
        with open(filename) as f:
            loader = importlib.machinery.SourceFileLoader('data',filename)
            mod = types.ModuleType(loader.name)
            loader.exec_module(mod)
        return mod
    except:
        logger.exception('Exception occured:')

我做过的事情:

我使用以下命令制作可执行文件;

pyinstaller --clean update.spec

更新规范:

# -*- mode: python -*-
#import win32wnet,sys

import PyInstaller.config;
PyInstaller.config.CONF['distpath'] = "./apps/App/"
PyInstaller.config.CONF['workpath'] = "Z:\\Workspace\\David\\Applications\\src\\"

block_cipher = None

a = Analysis(['Z:\\Workspace\\David\\Applications\\src\\Update.py'],
             pathex=['Z:\\Workspace\\David\\Applications\\bin\\apps\\App'],
             binaries=[],
             datas=[],
             hiddenimports=["win32process"],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,
          name='Update',
          icon='Z:\\Workspace\\David\\Applications\\src\\Icons\\Icon.ico',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=False,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=False,
               name='Update')

版本信息:

标签: python-3.xpyinstallerexecutable

解决方案


推荐阅读