【问题标题】:Nuitka on WindowsWindows 上的 Nuitka
【发布时间】:2015-10-13 14:07:24
【问题描述】:

在 Windows 上使用 Nuitka 编译 hello-world.py 时遇到问题。

我使用的命令是:

nuitka --standalone --portable --remove-output --recurse-all --python-version=3.4 hello_world.py

错误是:

WindowsError: [Error 2] The system cannot find the file specified:
File "C:\Users\win_user\Anaconda3\Lib\site-packages\nuitka\build\SingleExe.scons", line 866:
shell       = False
File "c:\Python27\lib\subprocess.py", line 709:
errread, errwrite)
File "c:\Python27\lib\subprocess.py", line 957:
startupinfo)

相同的代码在 Linux 上编译和运行良好。相同的代码在 windows 的解释器中运行良好。

错误消息中提到的文件确实存在。有什么建议吗?

使用Win7。 Python 3.4 (Anaconda x64)。使用 MinGW。

【问题讨论】:

    标签: mingw python-3.4 windows-7-x64 anaconda nuitka


    【解决方案1】:

    好的,为了任何有同样错误的人的利益,这是我自己问题的答案:

    我无法让 MinGW 正常工作。我最终安装了 MSVC2010。这可能会更好,因为无论如何都建议在 Windows 上使用 Python 3.4(请参阅:https://docs.python.org/3.4/using/windows.html#compiling-python-on-windows)。

    以下是使用 python 3.4 和 MSVC++2010 和 Win7 64 位安装 Nuitka 的说明:

    有关 MSVC2010 的其他有用说明如下:
    1。 https://wiki.qt.io/How_to_setup_MSVC2010
    2。 http://uk.mathworks.com/matlabcentral/answers/95039-why-does-the-sdk-7-1-installation-fail-with-an-installation-failed-message-on-my-windows-system

    步骤是:

    1. 安装 .net 4.x:
      运行 dotNetFx40_Full_setup.exe(来自 http://www.microsoft.com/en-gb/download/confirmation.aspx?id=17851

    2. 安装 Visual C++ 2010 Express:
      运行 vc_web.exe(来自http://microsoft-visual-cpp-express.soft32.com/download/file/id/795918/?no_download_manager=true

    3. UN-安装任何更新或等于 10.0.30319 的 Visual C++ 2010 运行时/可再发行版本。
      (在我的情况下,我为此设置安装了干净的 Windows,所以有没有什么可删除的)

    4. 安装 Windows SDK 7.1:(选择所有安装选项)
      运行 winsdk_web.exe(来自 https://www.microsoft.com/en-us/download/details.aspx?id=8279

    5. 安装 VS 2010 SP1:
      运行VS10sp1-KB983509.exe(来自http://www.microsoft.com/en-au/download/details.aspx?id=23691

    6. 安装 MSVC 2010 SP1 编译器更新:
      运行 VC-Compiler-KB2519277.exe(来自http://www.microsoft.com/en-au/download/details.aspx?id=4422

    现在安装了 C 编译器。

    1. 为了在 64 位机器上测试,我发现缺少一个文件,必须手动创建。 (见这里:http://www.w7forums.com/threads/vcvarsall-bat-no-64bit-support-vcvars64-bat-missing.6606/
      修复创建一个名为:C:\Program Files (x86)\Microsoft Visual Studio 10.0\vc\bin\amd64\vcvars64.bat的文件 在文件中输入文本 CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64

    2. 设置环境:
      运行 "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall" amd64
      执行上述命令后,控制台文本应变为黄色。
      (有关 amd64 以外的选项,请参见此处:https://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx

    3. 编译测试程序:(在 cmd 文本仍为黄色时执行此操作)
      cl hello.c
      (假设您的测试程序名为 hello.c

    4. 运行测试程序:
      hello.exe

    C 编译器现已测试。

    1. 安装 python 2.7:(即使 python 代码是 3.x,Nuitka 也需要这个)
      运行 python-2.7.6.amd64.msi(来自https://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi

    2. 安装 python 3.4:(Anaconda 堆栈似乎是在 Windows 上获取此功能的最明智的方法)
      运行 Anaconda3-2.3.0-Windows-x86_64.exe(来自https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b00b39d1d3.ssl.cf1.rackcdn.com/Anaconda3-2.3.0-Windows-x86_64.exe

    3. 安装 Nuitka:(总是更新版本,所以最好检查 http://nuitka.net/pages/download.html
      运行 Nuitka-5.1.143.win-amd64.py34.msi(来自 http://nuitka.net/releases/Nuitka-5.1.143.win-amd64.py34.msi

    所有安装现已完成!

    1. 测试 Nuitka:(假设您的测试程序是 hello.py
      “C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall”amd64
      nuitka --standalone --portable hello.py
      cd hello.dist
      hello.exe

    在第一次使用nuitka时,它给出了这样的通知:“Nuitka将使用Dependency Walker(http://dependencywalker.com)工具来分析Python扩展模块的依赖关系。是否可以下载并放入APPDATA(无需安装程序)需要,缓存,一次性问题)。继续下载?[是]/否“。我说是的,然后 hello world 程序就开始工作了。

    Hello world 在此过程后工作,但更复杂程序的一些导入会导致警告。当我弄清楚那个时会编辑我的答案。或者如果我想不通会问另一个问题。

    【讨论】:

    • 注意:以上对于简单的程序似乎可以正常工作,但尚未经过全面测试。另请注意,严格来说 Nuitka 需要 VS 2015,但似乎可以与上述 2010 express 一起使用。
    • 我没有同样的运气,似乎上面的一些下载不再工作/列出。如果有一个虚拟机(适用于 Windows)已经为 nuitka 提供了一切工作,那就太棒了——我已经浪费了足够多的时间试图让它正常运行。
    • 现在 nuitka 需要 Visual Studio / Build Tools 2019
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多