打包python程序到linux系统运行

啊,说到打包Python程序,我就知道了。
我在问答论坛上呆了这么多年,看到了很多关于PyInstaller的问题。
这个PyInstaller确实是Linux系统上打包Python程序的神器。

首先您需要安装 PyInstaller。
在Linux系统上,这很简单,只需打开终端并输入命令即可。
我记得当时是这样做的:pip install pyinstaller。
安装完后,如果想查看的话,输入pyinstaller --version 看看版本号是否出来了。

所以你需要做好准备。
你需要保证你的Python程序能够在Linux环境下正常运行,并且所有依赖库都必须跟上。
我以前见过他。
一个程序在本地运行得很好,但是到了Linux环境就会遇到各种各样的问题。
这时,创建一个虚拟环境并在其中安装所有依赖项是一个不错的选择。

下一步是使用 PyInstaller 创建包。
我通常是这样做的:pyinstaller --onefile your_script.py。
这样,程序就被压缩成一个独立的可执行文件,放在dist目录下。
如果您的程序使用图形界面并且您想要删除控制台窗口,请在命令中添加 --windowed 参数。
如果您的程序使用数据文件,只需使用 --add-data 参数指定文件路径即可。

打包后,别忘了测试一下。
将生成的可执行文件和依赖文件复制到目标Linux系统中并运行,看看程序是否可以正常运行。
记得以前,打包一个程序后,在目标系统上运行时总是会出现错误。
后来仔细一看,发现是因为少了一个小图标文件。

注意事项,我平时提醒大家注意两点。
首先,在打包过程中可能会遇到各种问题,比如缺少依赖库、路径问题等。
此时,您需要读取PyInstaller生成的日志文件,定位问题,然后修复。
其次,有时您可能需要手动编辑spec文件并更改配置来解决问题。

毕竟PyInstaller是个好工具。
一旦使用,将 Python 程序打包到 Linux 系统中就是一件轻而易举的事。
但问题必须逐步解决,不能操之过急。
过去我遇到过很多麻烦,因为我太没有耐心了。

linux下执行python程序root用户可以执行 普通用户找不到库

嘿,我在服务器工作时遇到过很多次。

记得有一年,公司一个新运维人员想用标准用户账号运行自动化脚本,结果却找不到某个库。
我在这下面,所以可以直接用pip install安装,但是对我来说不起作用。
为什么?普通用户没有权限访问根目录下的库。

以下是有关如何解决此问题的一些提示:
1 用户模式安装:这是最常用的方法。
要安装 pip install - 您使用用户库名称。
该软件包安装在 /home/username/.local/lib/pythonX.Y/site-packages 等位置。
普通用户用自己的账号安装肯定可以得到。
我在搭建一个项目的环境时,里面有一些第三方库,所以我让几个开发者使用 --user 来安装,这样就省去了我以root身份一一安装的麻烦。
2 .虚拟环境:这个就更好了。
您使用 virtualvenv venv 创建环境 source venv/bin/activate ,并安装库名称 pip 。
这个环境是一个独立的盒子,与全局环境无关。
开发者在自己的目录下创建一个环境,安装自己需要的包,使用完后退出。
过去,当我开发一个新功能时,我会为每个人创建一个虚拟环境。
代码写完打包后,我就直接把环境删除了。
干净整洁。
3 .更改PATH:一般不建议使用此技巧,因为它很容易引起问题。
如果全局安装并希望临时用户使用它,可以将export PATH=$PATH:/usr/local/lib/pythonX.Y/site-packages添加到~/.bashrc。
但我告诉你,这很容易让人困惑。
如果用户安装某个软件包,可能会影响系统中的其他用户或其他服务。
我尝试过一次,后来发现虚拟环境的问题就小多了。

总结一下:我基本上不再使用第三个了,它看起来笨重且容易出现问题。
第一种和第二种是最常用和最可靠的。
虚拟环境隔离性好,推荐使用。
用户模式安装简单明了,而且有效。
主要是不要强行改变系统的全局环境,这样很容易出问题。