0

我在 Windows 7 上,并且安装了 Python 3.5.1。

我想从 Python 脚本创建可执行文件。

到目前为止我做了什么:

我跑了pip install cx_freeze,我得到了Unable to find vcvarsall.bat错误。

@Cody Piersall 链接到Steve Dowers 博客条目

从那里我下载并安装了 Visual C++ Build Tools 2015。

现在我安装了这些 *Microsoft Visual C++ ** 'es:截图

我在以下位置安装了 vcvars* 批次C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\

  • vcvarsall.bat
  • bin\vcvars32.bat
  • bin\amd64\vcvars64.bat.
  • ETC

我的漂亮打印路径是:

C:\run\Python_3_5\Scripts\;
C:\run\Python_3_5\;
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\ProgramData\Oracle\Java\javapath;
C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;
C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;
C:\run\Haskell-Platform\lib\extralibs\bin;
C:\run\Haskell-Platform\bin;
C:\Users\Nils-Hero\AppData\Roaming\cabal\bin;
C:\run\Haskell-Platform\mingw\bin;
C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;
C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;

问题:

当我现在重新运行pip install cx_freeze时,它找不到文件cl.exe

Collecting cx_freeze
  Using cached cx_Freeze-4.3.4.tar.gz
Installing collected packages: cx-freeze
  Running setup.py install for cx-freeze ... error
    Complete output from command c:\run\python_3_5\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\NILS-H~1\\AppData\\Local\\Temp\\pip-build-9lhua9e9\\cx-freeze\\setup.py'
;exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\NILS-H~1\AppData\Local\Temp\pip-bb2i8jxv-record\install-re
cord.txt --single-version-externally-managed --compile:
    adding base module named _bootlocale
    adding base module named _collections_abc
    adding base module named _compression
    ...
    ... adding a lot more base modules  ...
    ...
    running install
    running build
    running build_py
    creating build\lib.win-amd64-3.5
    creating build\lib.win-amd64-3.5\cx_Freeze
    copying cx_Freeze\common.py -> build\lib.win-amd64-3.5\cx_Freeze
    copying cx_Freeze\dist.py -> build\lib.win-amd64-3.5\cx_Freeze
    ...
    ... creating and copying a lot more things ...
    ...
    running build_ext
    building 'cx_Freeze.util' extension
    creating build\temp.win-amd64-3.5\Release
    creating build\temp.win-amd64-3.5\Release\source
    cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Ic:\run\python_3_5\include -Ic:\run\python_3_5\include /Tcsource/util.c /Fobuild\temp.win-amd64-3.5\Release\source/util.obj
    error: command 'cl.exe' failed: No such file or directory

    ----------------------------------------
Command "c:\run\python_3_5\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\NILS-H~1\\AppData\\Local\\Temp\\pip-build-9lhua9e9\\cx-freeze\\setup.py';exec(compile(getattr(to
kenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\NILS-H~1\AppData\Local\Temp\pip-bb2i8jxv-record\install-record.txt --single-versio
n-externally-managed --compile" failed with error code 1 in C:\Users\NILS-H~1\AppData\Local\Temp\pip-build-9lhua9e9\cx-freeze\

此可执行文件位于子文件夹下C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\和子文件夹中。

我猜 pip 找不到它,因为这些路径不在我的PATH上,但为什么 Visual C++ Build Tools 2015 安装程序不添加它们?我害怕手动调整 800MB 大小、50 分钟的持久安装。所以我最好先在这里问。

4

1 回答 1

0

好的。解决了。

根据这个问题的答案,我成功地从轮子上安装了 cx_freeze 。

但是来自 Gohlke 站点的4.3.4 版本ImportError: No module named '_frozen_importlib_external'在 Python 3.5 ( ) 下有一个错误。我们必须等到 cx_freeze 作者发布下一个版本的 cx_freeze(似乎很快)。

同时,Sebastian Krause非常友好地使用来自 repo 的最新代码 cx_freeze 5.0 创建了一些轮子,并且这些轮子在我的测试中安装和运行没有错误。

于 2016-09-16T00:20:02.343 回答