首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows环境下的Nuitka

Windows环境下的Nuitka
EN

Stack Overflow用户
提问于 2015-10-13 14:07:24
回答 1查看 9.6K关注 0票数 7

在windows上使用Nuitka编译hello-world.py有问题。

我使用的命令是:

代码语言:javascript
复制
nuitka --standalone --portable --remove-output --recurse-all --python-version=3.4 hello_world.py

错误是:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-14 21:23:38

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

我没能让MinGW工作。我最终安装了MSVC2010。这可能更好,因为在Windows上推荐使用Python3.4(参见:https://docs.python.org/3.4/using/windows.html#compiling-python-on-windows)。

下面是使用python3.4与和Win7 64位一起安装Nuitka的说明:

有关MSVC2010的其他有用说明如下:

  1. 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. 安装VisualWeb2010Express: 运行vc_web.exe (来自manager=true)
  3. 卸载任何VisualC++ 2010运行时/可再发行更新或等于10.0.30319。 (在我的例子中,我为这个设置安装了一个干净的窗口,所以没有什么要删除的)
  4. 安装WindowsSDK7.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 (x86)\Microsoft文件的文件,请将文本调用"C:\Program \Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd“/x64
  2. 设置环境: 运行"C:\Program (X86)\MicrosoftVisualStudio10.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:(Nuitka需要这一点,即使python代码是3.x) 运行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 (从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. Test:(假设您的测试程序是hello.py) "C:\Program (X86)\MicrosoftVisualStudio10.0\VC\vcvarsall“amd64 nuitka -独立-便携hello.py cd hello.dist hello.exe

在第一次使用nuitka时,它发出了这样的通知:"Nuitka将使用dependencies (http://dependencywalker.com)工具来分析Python扩展模块的依赖关系。下载并放入APPDATA (不需要安装程序,缓存,一个时间问题)是否可以。继续并下载吗?是/否。“我答应了,然后打个招呼就成功了。

Hello在这个过程之后开始工作,但是一些更复杂的程序的导入会引起警告。当我想出答案的时候我会修改我的答案。如果我搞不清楚的话还会问别的问题。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33104873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档