windows 下 pyinstaller distutils not included with latest virtualenv (16.4.0)

起因

因为windows下python3.7.2内置venv虚拟环境下pyinstaller错误问题,切换virtualenv但是发现最新版本又有其他问题 - -!

ModuleNotFoundError: No module named 'distutils'
[10373] Failed to execute script <name here>

排查

  1. 肯定不是源码问题,迁出代码前没有问题
  2. 可能又是virtualenv和pyinstaller的版本兼容问题

解决

直接搜索到了社区的解决方案

# work-around for https://github.com/pyinstaller/pyinstaller/issues/4064
import distutils
if distutils.distutils_path.endswith('__init__.py'):
    distutils.distutils_path = os.path.dirname(distutils.distutils_path)

将以上代码贴入 *.spec文件开头,清理build目录重新生成就可以了。或等官方新版本解决

原文地址:https://www.cnblogs.com/wuyaSama/p/10784183.html