标签: nuitka

Nuitka错误无法在绝对导入中找到''in package''

我正在尝试使用nuitka工具将我的python程序转换为ubuntu上的可执行文件.如果程序没有任何import语句,但是当我在导入某些程序的程序上使用它时,它会正常工作

test.py

import numpy

print "hello, world."
Run Code Online (Sandbox Code Playgroud)

在命令行上输入此内容

nuitka --recurse-all --python-version=2.7 test.py
Run Code Online (Sandbox Code Playgroud)

并给我这些错误

Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/numarray/functions.py:45: Cannot find 'copyreg' in package 'numpy.numarray' as absolute import.
Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/distutils/npy_pkg_config.py:11: Cannot find 'configparser' in package 'numpy.distutils' as absolute import.
Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1765: Cannot find 'Numeric' in package 'numpy.distutils' as absolute import.
Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1770: Cannot find 'numarray' in package 'numpy.distutils' as absolute import.
Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/f2py/diagnose.py:48: Cannot find 'numpy_distutils' in package 'numpy.f2py' as absolute import.
Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/f2py/diagnose.py:87: Cannot find 'numpy_distutils.command.build_flib' in package 'numpy.f2py' as absolute import.
Run Code Online (Sandbox Code Playgroud)

python nuitka

15
推荐指数
1
解决办法
5555
查看次数

无法使用Nuitka编译Python

我正在尝试编译使用urllib.request,BeautifulSoup和webbrowser的Python文件.

$ nuitka python.py
Nuitka:WARNING:python.py:16: Cannot find 'urllib.request' as relative or absolute import.
Nuitka:WARNING:python.py:17: Cannot find 'bs4' as relative or absolute import.

$ ./python.exe
Traceback (most recent call last):
  File "python.py", line 16, in <module>
    from urllib.request import urlopen
ImportError: No module named request
Run Code Online (Sandbox Code Playgroud)

python ubuntu python-3.x nuitka

10
推荐指数
1
解决办法
2791
查看次数

在Windows 10上使用Nuitka将Python 3.6脚本编译为独立的exe

注意:
在将此问题标记为重复之前,请验证另一个问题是否回答了此设置的主题:

  • 操作系统:Windows 10,64位
  • Python版本:3.6或更高版本
  • Python编译器:Nuitka,开发版本0.5.30rc5
  • MSVC编译器:Visual Studio 2017社区,vcvars64.bat

 

1.我如何构建我的exe

我将首先解释如何构建可执行文件.假设我有一个包含我想构建的简单python脚本的文件夹:

在此输入图像描述

buildscript.py如下所示:

#####################################################
#               NUITKA BUILD SCRIPT                 #
#####################################################
# Author: Matic Kukovec
# Date: April 2018

import os
import platform


NUITKA = "C:/Python36/Scripts/nuitka3-script.py"  # Path where my nuitka3-script.py is
CWD = os.getcwd().replace("\\", "/")
MSVC = "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvars64.bat"
PYTHON_VERSION = "3.6"
PYTHON_EXE_PATH= "C:/Python36/python.exe"
NUMBER_OF_CORES_FOR_COMPILATION = 1 # 1 is the safest choice, but you can try more

# Generate command
command = '"{}" amd64 …
Run Code Online (Sandbox Code Playgroud)

python exe nuitka windows-10 python-3.6

8
推荐指数
1
解决办法
5504
查看次数

在debian下编译的python文件与ubuntu兼容

我正在使用nuitka来编译我的python代码.我使用--module选项在其他python文件中导入我的代码:

nuitka --module --recurse-none file.py
Output: file.so
Run Code Online (Sandbox Code Playgroud)

如果我不需要导入代码并且只需要在终端上运行,那么我正在遵循常规编译过程:

nuitka --recurse-none file.py
Output: file.exe
Run Code Online (Sandbox Code Playgroud)

我正在Debian下编译这些文件,他们在Debian下没有问题.当我将这些文件移动到Ubuntu系统时,我有时会遇到Segmentation Fault错误.是因为Debian下的编译python代码与Ubuntu不兼容,还是我犯了个人错误(比如缺少库等)

python linux nuitka

7
推荐指数
1
解决办法
274
查看次数

Nuitka依赖性错误

我正在尝试使用Nuitka编译一个简单的独立python应用程序.我只使用标准库就可以做到这一点.

我现在想要引入一些额外的依赖,但我现在收到来自Nuitka的错误,我无法解释.

我试图将numpy导入项目,看起来像:

结构体:

  • NPG
    • __init__.py
    • __main__.py
  • Pipfile
  • Pipfile.lock

这是 __main__.py

import numpy as np


def main():
    print('hello Nuitka')
    print('hello numpy', np.__version__)


if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

然后我运行python -m nuitka npg/__main__.py --standalone并得到错误:

Nuitka:WARNING:/usr/local/lib/python3.6/site-packages/numpy/testing/_private/pytesttester.py:125: Cannot find 'pytest' in package 'numpy.testing._private' as absolute import (tried pytest).
Nuitka:WARNING:/usr/local/lib/python3.6/site-packages/setuptools/command/egg_info.py:20: Cannot find 'setuptools.extern.six.moves' in package 'setuptools.command' as absolute import (tried setuptools.extern.six.moves).
Nuitka:WARNING:/usr/local/lib/python3.6/site-packages/setuptools/command/egg_info.py:20: Cannot find 'setuptools.extern.six' in package 'setuptools.command' as absolute import (tried setuptools.extern.six).
Nuitka:WARNING:/usr/local/lib/python3.6/site-packages/setuptools/glob.py:13: Cannot find 'setuptools.extern.six' in package 'setuptools' as absolute import …
Run Code Online (Sandbox Code Playgroud)

python import python-3.x nuitka

7
推荐指数
0
解决办法
319
查看次数

如何使用Visual Studio命令行+ SCons构建Windows XP应用程序?

使用Visual Studio 2015 IDE构建Windows xp应用程序并不难,您只需要使用正确的平台工具集(v120_xp或v140_xp),并确保在目标计算机上安装适当的可再发行的visual studio运行时dll, peasy.

现在,我一直在试图找出如何在不使用VS GUI但使用VS2015命令行+ SCons的情况下构建针对Windows XP的Windows xp应用程序

所有SCons标志都在这里发表文档,但我没有看到任何允许我更改平台工具集的内容.

如果你想知道平台工具集标志的真正含义是什么......经过一些研究我已经能够弄清楚那个标志真正做的是基本上生成适合目标机器加载器的不同PE头,你可以看到下面4个不同案例之间的比较(v120,v120_xp,v140,v140_xp):

在此输入图像描述

问题:如何在使用visual studio command line或使用时更改visual studio平台工具集visual studio command line + SCons

编辑:我发现这可以在使用VS2010的msbuild构建时从命令行设置平台工具集吗?但我不确定是否可以通过SCons使用:/

scons portable-executable visual-studio nuitka visual-studio-2015

7
推荐指数
1
解决办法
212
查看次数

Nuitka 的 add-data (Pyinstaller) 的等价物是什么?

我正在尝试使用 Nuitka 而不是 Pyinstaller 编译 python 文件。一切都很顺利,除了我不明白如何将另一个数据文件添加到 python 文件中。

问题

如果我想将图像添加到 Pyinstaller(在 Windows 中)中的 python 文件中,我会这样做:

wine /root/.wine/drive_c/Python27/pyinstaller.exe --add-data "/root/Downloads/car.jpg;." --onefile --noconsole --icon /root/Downloads/icon.ico pythonfile.py 
Run Code Online (Sandbox Code Playgroud)

现在,如果我打开这个 exe 文件,我将运行 python 文件并打开 car.jpg 文件。

我想使用 Nuitka 做类似的事情。当我查看 Nuitka 的文档时,我发现我可能需要使用该--include-data-file=<source>=<target>参数。

我尝试了这个,它没有给出错误,但是当我打开创建的 exe 文件时,它不会打开给定的文件。所有其他参数都按我想要的方式工作,因此只有 --include-data-file 参数没有给出想要的结果

这是我尝试过的 Nuitka 命令:

.\python.exe -m nuitka --mingw64 .\pythonprogram.py --standalone --onefile --windows-icon-from-ico=pdf.ico --windows-disable-console --include-data-file=C:\Users\User\AppData\Local\Programs\Python\Python39\*.pdf=mypdf.pdf
Run Code Online (Sandbox Code Playgroud)

我的问题:

  • 我使用了正确的论点吗?
  • Nuitka 是否有可能做到这一点?
  • 我该如何解决我的问题?

提前致谢!

python compilation pyinstaller python-3.x nuitka

7
推荐指数
1
解决办法
4946
查看次数

Problems on creation of executable file from python with Nuitka

I am trying to create an exe file from a python file that it will be executable to other PCs. I came across Nuitka.I use Python 2.7.11 Anaconda 2.3.0 (32 bit) on Windows 8.1 64 bit. Because of my work specs i can't update my Python version!!! I have download nuitka 0.5.19 for python 2.7. At first i used the simple line nuitka --exe python.py and i get an executable (with some warnings) that runs only in PCs that had …

python exe python-2.7 nuitka

6
推荐指数
1
解决办法
1327
查看次数

在Windows上的Nuitka

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

我使用的命令是:

nuitka --standalone --portable --remove-output --recurse-all --python-version=3.4 hello_world.py
Run Code Online (Sandbox Code Playgroud)

错误是:

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)
Run Code Online (Sandbox Code Playgroud)

相同的代码在Linux上编译和运行正常.相同的代码在Windows上的解释器中运行良好.

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

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

mingw windows-7-x64 anaconda python-3.4 nuitka

5
推荐指数
1
解决办法
5568
查看次数

将Python程序转换为C/C++,然后转换为RISC-V可执行文件

我一直在尝试在RISC-V架构的系统上运行Python程序。该程序涉及运行一个简单的人工神经网络模型,并涉及 numpy 的使用。

然而,运行在RISC-V架构上的操作系统(目前运行在FPGA上)是一个非常基本的Linux系统,无法安装Python3或Pip等软件。但它可以编译C/C++程序并运行它们。所以我认为仍然有办法在这个系统上运行我的Python程序,通过在我的主机系统上将其转换为C/C++,将其传输到RISC-V系统,并在那里进行编译。

问题是我无法在任何地方找到好的 Python 到 C/C++ 转换器软件。我发现有一些软件工具可以将Python代码转换为二进制可执行文件,例如py2exe和pyinstaller。但是,如果我尝试运行机器代码,仅与我的主机系统架构(使用 RISC-V 架构)兼容,则这是无关紧要的。

我还遇到了 Nuitka,它确实将 Python 代码转换为 C/C++ 并将其存储在可移植的分发文件夹中,但随后也为我在程序中导入的库生成共享对象文件 (.so),这又不能在RISC-V系统上执行。此外,根据我在 Nuitka 文档中看到的内容,发行版中没有编译 C/C++ 代码的指南。

所以我有几个问题:

  1. 根据我提到的有关 RISC-V 系统的限制,是否可以遵循其他任何过程来在系统上运行我的 Python 程序?
  2. 如果没有,除了 Nuitka 之外,还有什么软件工具可以用来将 Python 转换为 C/C++ 吗?
  3. 如果没有,您能否提供一个清晰的过程,说明如何使用 Nuitka 将 Python 代码转换为 C/C++,然后在 RISC-V 系统上编译给定的 C/C++ 代码?

c c++ python nuitka riscv

5
推荐指数
1
解决办法
2808
查看次数