GVKun编程网logo

从Python项目创建单个可执行文件(从python项目创建单个可执行文件)

14

这篇文章主要围绕从Python项目创建单个可执行文件和从python项目创建单个可执行文件展开,旨在为您提供一份详细的参考资料。我们将全面介绍从Python项目创建单个可执行文件的优缺点,解答从pyt

这篇文章主要围绕从Python项目创建单个可执行文件从python项目创建单个可执行文件展开,旨在为您提供一份详细的参考资料。我们将全面介绍从Python项目创建单个可执行文件的优缺点,解答从python项目创建单个可执行文件的相关问题,同时也会为您带来C++ 在一个可执行文件中从另一个可执行文件共享内存和调用函数?、c++可执行文件 管道 python 管道 c++可执行文件、Kivy:编译为单个可执行文件、node.js – 找不到Python可执行文件“/path/to/executable/python2.7”,可以设置PYTHON env变量的实用方法。

本文目录一览:

从Python项目创建单个可执行文件(从python项目创建单个可执行文件)

从Python项目创建单个可执行文件(从python项目创建单个可执行文件)

我想从我的Python项目创建一个可执行文件。用户无需安装Python就可以下载并运行它。如果我只是分发软件包,则可以使用pip,wheel和PyPI进行构建和分发,但这需要用户具有Python并且知道如何安装软件包。我可以用什么来从Python项目构建一个自包含的可执行文件?

答案1

小编典典

这是一些常见的。除非明确指出,否则截至我上次编辑(2020年1月)时,下面列出的所有项目都将得到积极维护。

我还提供了指向各自网站,软件库和PyPi列表的链接,以备你检查自己更新的频率。

另外,除非另有说明,否则下面列出的所有程序都会为运行它的操作系统专门生成一个exe。因此,例如,在Windows中运行Pyinstaller会生成Windows exe,但是在Linux中运行Pyinstaller会生成Linux exe。如果要为多个操作系统生成exe,则必须考虑使用虚拟机或使用Wine等工具。

以下程序的工作方式相似-将Python和你的程序捆绑在一起,有效地将它们组合在一起以生成可执行文件。

  • PyInstaller:

  • 链接:网站 || 回购 || 皮皮

  • 支持:Windows,Mac和Linux上的Python 2.7和Python 3.4-3.7。

  • cx_Freeze:

  • 链接: 网站 || 回购 || 皮皮

  • 支持: Windows,Mac和Linux上的Python 2.7和3.5-3.8。

  • py2app:

  • 链接: 网站 || 回购 || 皮皮

  • 支持:仅Mac上的Python 2.7和3.3(?)-3.7(?)。
  • 注意:截至我上次编辑时,我无法最终确定pyapp支持的Python版本的确切范围。最新版本提到支持Python 3.7。

注意:本文的早期版本包括py2exe(repo)和bbfreeze(repo)的文章。这两个项目都已从此列表中删除:它们几年来几乎没有活动,而且似乎完全没有维护。请参阅编辑历史记录中的旧文章。

当然,这不是唯一的处理方式:

  • pynsist:

  • 链接: 网站 || 回购 || 皮皮

  • 支持:所有Python版本?注意- 仅创建Windows安装程序。
  • 其他说明: Pynsist似乎支持将任何任意Python版本与你的应用程序捆绑在一起。但是,该工具本身需要Python 3.5+才能运行。

Pynsist将为你的程序创建Windows安装程序,该程序将直接在用户计算机上安装Python,而不是将其与你的代码捆绑在一起,并创建链接到你的Python脚本的快捷方式。尽管此程序仅产生Windows安装程序,但看来你仍然可以在Mac和Linux计算机上运行Pynsist。

  • 努伊特卡:

  • 链接: 网站 || 回购(Github镜像) || 皮皮

  • 支持: Windows,Mac和Linux上的Python 2.6-2.7和Python 3.3-3.7。
  • 其他说明: Nuitka会从字面上编译你的Python代码并生成一个exe(与其他项目(仅包含Python)相对),以尝试加快你的代码的速度。作为副作用,你还将获得可以分发的便捷exe。注意,你的系统上需要有一个C ++编译器。
  • cython:

  • 链接: 网站 || 回购 || 皮皮

  • 支持: Windows,Mac和Linux上的Python 2.6-2.7和Python 3.2-3.8。
  • 其他说明: Cython与Nuitka相似,因为它是Python编译器。但是,不是直接编译你的代码,而是将其编译为C。然后可以使用该C代码并将你的代码转换为exe。你需要在系统上使用C编译器。
    我个人偏爱使用PyInstaller,因为它是我最容易启动和运行的工具,旨在与numpy或pygame等各种流行的库很好地兼容,并且与各种OS和Python版本具有很好的兼容性。

但是,我也使用cx_Freeze成功地构建了各种exe文件,没有太多困难,因此你还应该考虑尝试该程序。

我还没有机会尝试Pynist,Nuitka或Cython,但它们似乎是非常有趣且创新的解决方案。如果你在使用第一组程序时遇到麻烦,则值得尝试使用这三个程序之一。由于它们的工作原理与Pyinstaller / cx_freeze风格的程序根本不同,因此,在第一个组失败的奇怪情况下,它们可能会成功。

特别是,我认为pynist是避免完全分发代码的整个问题的好方法:Mac和Linux已经具有对Python的本机支持,仅在Windows上安装Python可能确实是最干净的解决方案。(缺点是现在你需要担心将多个版本的Python +安装库作为目标)。

Nuitka和Cython(据我有限的经验)似乎工作得很好。同样,我自己还没有对它们进行全面的测试,因此我的主要观察结果是,与“ freeze”风格的程序相比,它们生成exe的时间似乎更长。

C++ 在一个可执行文件中从另一个可执行文件共享内存和调用函数?

C++ 在一个可执行文件中从另一个可执行文件共享内存和调用函数?

如何解决C++ 在一个可执行文件中从另一个可执行文件共享内存和调用函数??

这可能是一个基本问题,但我是 C++ 新手,我无法在网上找到答案,我想是因为我不知道该搜索什么。

对于我的项目,我有一个将使用 C++ 的数据结构,它本质上是一个非常大的 3D 模型,存储在内存中的大小为许多 GB。我编写了一个程序来存储和操作这个巨大的 3D 模型。

我希望第三方能够编写自己编译的可执行文件,这些文件链接到我自己的可执行文件中,并且可以直接调用其上的某些函数,例如渲染 3D 模型,而无需序列化数据并传递它来回。所以基本上我希望第三方可执行文件能够连接或链接到我的可执行文件,所以它们的操作有点像我的程序是一个库,它是该程序的一部分,即使它实际上是一个单独的运行进程。他们应该能够调用函数,甚至(如果允许)从我的进程访问内存(我可以传递对内存位置的引用,然后他们像自己一样使用该引用吗?)堆中的变量可以跨程序共享吗?一个进程中的函数可以被另一个正在运行的进程调用吗?

有意义吗? 我在哪里可以学习如何做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

c++可执行文件 管道 python 管道 c++可执行文件

c++可执行文件 管道 python 管道 c++可执行文件

在centos中使用管道进行参数的传输

 

运行格式   ./c++A | python3 p.py | ./c++B

 

python脚本中使用标准输入和输出 stdin 和 stdout,python脚本参数是传输不到./c++B可执行文件的。

python 脚本中要使用

while True:

  line=input()

  ............

  print(line)

 

不要写

for line in sys.stdin:

  print(line)

本人没有学过python,具体什么原因也不清楚,有请python大佬们给个解释吧

Kivy:编译为单个可执行文件

Kivy:编译为单个可执行文件

在kivy论坛中没有得到回应,因此请在这里尝试。

当我将教程pong代码编译为一个文件可执行文件时,我仍然必须将pong.kv文件包含在同一文件夹中才能运行。否则,启动exe时出现以下错误:

    GL:支持EXT_framebuffer_object
    [INFO] [GL] OpenGL版本 
    [INFO] [GL] OpenGL供应商 
    [INFO] [GL] OpenGL渲染器 
    [INFO] [GL] OpenGL解析的版本:2、1
    [INFO] [GL]底纹版本 
    [INFO] [GL]纹理最大尺寸 
    [INFO] [GL]纹理最大单位 
    [信息] [窗口]自动添加sdl2输入提供程序
    [INFO] [Window]虚拟键盘不允许,
    单模,不对接
     追溯(最近一次通话):
       在第81行的文件“”中 
       文件“ c:\ python34 \ lib \ site-packages \ kivy \ app.py”,第802行,位于
    跑
         根= self.build()
       文件“”,第75行,在构建中
       在serveBall中的文件“”,第20行
     AttributeError:“ NoneType”对象没有属性“ center”
    主要返回-1

如何使它作为一个可执行文件运行。这是我的pong.spec文件:

    # -*- mode: python -*-

    from kivy.deps import sdl2,glew

    block_cipher = None


    a = Analysis(['Code\main.py'],pathex=['E:\\Development\\Pong'],binaries=None,datas=None,hiddenimports=[],hookspath=[],runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher)
    pyz = PYZ(a.pure,a.zipped_data,cipher=block_cipher)

    a.datas += [('Code\pong.kv','E:\\Development\\Pong\Code\pong.kv','DATA')]

    exe = EXE(pyz,Tree('Code'),a.scripts,a.binaries,a.zipfiles,a.datas,*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],name='pong',debug=False,strip=False,upx=True,console=True,icon='pong.ico')

请注意,我尝试将pong.kv包括在数据列表中,但这没有帮助。

谢谢,-Raj

node.js – 找不到Python可执行文件“/path/to/executable/python2.7”,可以设置PYTHON env变量

node.js – 找不到Python可执行文件“/path/to/executable/python2.7”,可以设置PYTHON env变量

bufferutil@1.2.1 install /home/sudthenerd/polymer-starter-kit-1.2.1/node_modules/bufferutil > node-gyp rebuild gyp ERR! configure error gyp ERR! stack Error: Can’t find Python executable “/path/to/executable/python2.7”,you can set the PYTHON env variable. gyp ERR! stack at failnopython (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:401:14) gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:330:11 gyp ERR! stack at F (/usr/lib/node_modules/npm/node_modules/which/which.js:78:16) gyp ERR! stack at E (/usr/lib/node_modules/npm/node_modules/which/which.js:82:29) gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/which/which.js:93:16 gyp ERR! stack at FSReqWrap.oncomplete (fs.js:82:15) gyp ERR! System Linux 3.13.0-74-generic gyp ERR! command “/usr/bin/nodejs” “/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js” “rebuild” gyp ERR! cwd /home/sudthenerd/polymer-starter-kit-1.2.1/node_modules/bufferutil gyp ERR! node -v v5.3.0 gyp ERR! node-gyp -v v3.2.1 gyp ERR! not ok npm WARN install:bufferutil@1.2.1 bufferutil@1.2.1 install: node-gyp rebuild npm WARN install:bufferutil@1.2.1 Exit status 1 > utf-8-validate@1.2.1 install /home/sudthenerd/polymer-starter-kit-1.2.1/node_modules/utf-8-validate > node-gyp rebuild gyp ERR! configure error gyp ERR! stack Error: Can’t find Python executable “/path/to/executable/python2.7”,you can set the PYTHON env variable. gyp ERR! stack at failnopython (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:401:14) gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:330:11 gyp ERR! stack at F (/usr/lib/node_modules/npm/node_modules/which/which.js:78:16) gyp ERR! stack at E (/usr/lib/node_modules/npm/node_modules/which/which.js:82:29) gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/which/which.js:93:16 gyp ERR! stack at FSReqWrap.oncomplete (fs.js:82:15) gyp ERR! System Linux 3.13.0-74-generic gyp ERR! command “/usr/bin/nodejs” “/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js” “rebuild” gyp ERR! cwd /home/sudthenerd/polymer-starter-kit-1.2.1/node_modules/utf-8-validate gyp ERR! node -v v5.3.0 gyp ERR! node-gyp -v v3.2.1 gyp ERR! not ok npm WARN install:utf-8-validate@1.2.1 utf-8-validate@1.2.1 install: node-gyp rebuild npm WARN install:utf-8-validate@1.2.1 Exit status 1

解决方法

斯科特弗里斯的解决方案对我而言并不适合我

npm config set python $(哪个python)

没有.

关于从Python项目创建单个可执行文件从python项目创建单个可执行文件的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于C++ 在一个可执行文件中从另一个可执行文件共享内存和调用函数?、c++可执行文件 管道 python 管道 c++可执行文件、Kivy:编译为单个可执行文件、node.js – 找不到Python可执行文件“/path/to/executable/python2.7”,可以设置PYTHON env变量等相关内容,可以在本站寻找。

本文标签: