我正在尝试使用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) 我正在尝试编译使用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脚本的文件夹:
该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) 我正在使用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不兼容,还是我犯了个人错误(比如缺少库等)
我正在尝试使用Nuitka编译一个简单的独立python应用程序.我只使用标准库就可以做到这一点.
我现在想要引入一些额外的依赖,但我现在收到来自Nuitka的错误,我无法解释.
我试图将numpy导入项目,看起来像:
结构体:
这是 __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) 使用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
我正在尝试使用 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)
我的问题:
提前致谢!
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 …
在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.
我一直在尝试在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++ 代码的指南。
所以我有几个问题:
nuitka ×10
python ×8
python-3.x ×3
exe ×2
anaconda ×1
c ×1
c++ ×1
compilation ×1
import ×1
linux ×1
mingw ×1
pyinstaller ×1
python-2.7 ×1
python-3.4 ×1
python-3.6 ×1
riscv ×1
scons ×1
ubuntu ×1
windows-10 ×1