无法从 py2exe 编译的脚本中导入 distutils

Mat*_*ene 5 python distutils py2exe virtualenv

我在 Windows Server 2012R2 上,尝试在 virtualenv 中使用 py2exe 编译脚本,每当应用程序脚本之一尝试“导入 distutils”(在我的情况下,它位于第 3 方库中的某个位置)时,我就会遇到问题,但我在这里减少了问题)。

重现步骤:

它返回:

    C:\Users\root\p\dist\library.zip\distutils\__init__.py:14: UserWarning: The virtualenv distutils package at %s appears to be in the same location as the system distutils?
    Traceback (most recent call last):
      File "py2exe_distutils.py", line 6, in <module>
        import distutils
      File "distutils\__init__.pyc", line 25, in <module>
    ImportError: cannot import name dist
Run Code Online (Sandbox Code Playgroud)

当我直接运行脚本(python py2exe_distutils.py)时,即使是在 virtualenv 中,该脚本也运行良好。

我是否试图执行 py2exe 不支持的操作,或者我的设置有问题?

Pab*_*blo 2

我在创建使用pandas 0.12.0的可执行文件时遇到了同样的问题。这对我有用:在创建可执行文件之前,distutils从基本 python 安装中复制文件夹

robocopy C:\Python27\Lib\distutils venv\Lib\distutils /E /COPY:DAT
Run Code Online (Sandbox Code Playgroud)

我在 Windows 7 Professional 上使用 virtualenv 12.0.4 和 py2exe 0.6.6。可以在这里找到一些额外的见解。这个答案为我指出了复制文件的方向。