有服务器还需要买网站空间吗天台城乡规划建设局网站
有服务器还需要买网站空间吗,天台城乡规划建设局网站,电脑做系统教学网站,开个app需要多少钱有些依赖包要安装exe和设置环境变量#xff0c;但是依赖包本身不能直接运行#xff0c;还仍需多安装一些msi或exe等程序。本文带领大家探索底层原因及其软件设计模式考虑。
1. 核心原因#xff1a;系统级工具与语言库的分离
许多软件功能并不是用你当前项目所用的编程语言&a…有些依赖包要安装exe和设置环境变量但是依赖包本身不能直接运行还仍需多安装一些msi或exe等程序。本文带领大家探索底层原因及其软件设计模式考虑。1. 核心原因系统级工具与语言库的分离许多软件功能并不是用你当前项目所用的编程语言如 Python、Node.js编写的而是用 C、C、Go、Rust 等系统级语言编写的并被编译成独立的、可直接被操作系统运行的原生二进制可执行文件。项目代码例如 Python 脚本需要去“调用”或“驱动”这个外部工具来完成特定任务。这个过程通常被称为“子进程调用”。举个例子FFmpeg一个强大的音视频处理工具用 C 语言编写。你的 Python 程序想转换一个视频格式代码里可能会写subprocess.run([ffmpeg, -i, input.mp4, output.avi])。这里Python 代码只是启动了ffmpeg.exe这个外部程序并传递参数给它真正的转换工作是由ffmpeg.exe完成的。ImageMagick图像处理套件。wkhtmltopdf将 HTML 转换为 PDF使用 Qt WebKit 引擎。各种编译器/解释器如javacJava、gccC/C、nodeJavaScript本身。数据库客户端如mysql.exe、psql.exePostgreSQL。用同语言编写Pillow Pythonpdfkit Python 包装器语言内置库用系统级语言编写FFmpeg C/CImageMagick Cwkhtmltopdf C/Qt编译器 gcc/clang数据库客户端调用方式subprocess.runchild_process.spawn等子进程调用你的应用程序如 Python/Node.js 项目目标工具类型已编译的二进制可执行文件.exe/.bin源代码/字节码在解释器中运行直接由操作系统执行由语言运行时解释执行高性能系统级资源访问易于集成但可能有性能限制2. 需要安装和设置exe/msi环境变量的原因安装通常是 .exe 或 .msi 文件这是将那个独立的、编译好的二进制可执行文件以及它可能依赖的库文件、配置文件等放置到你电脑的特定目录如C:\Program Files\SomeTool\的过程。闭源软件几乎总是以这种形式分发。设置环境变量主要是PATH操作系统如 Windows的PATH环境变量是一个目录列表。当你在命令行或代码中只输入一个命令名如ffmpeg时系统会按照PATH中列出的目录顺序去这些目录里寻找同名的可执行文件。如果没有设置PATH你每次调用都必须使用完整的绝对路径例如C:\Program Files\ffmpeg\bin\ffmpeg.exe -i ...这非常繁琐且代码不可移植。设置PATH后你只需输入ffmpeg系统就能在PATH包含的C:\Program Files\ffmpeg\bin\目录下找到它。这使得命令行操作和程序调用变得简洁通用。安装与设置环境变量的作用是否用户想要运行程序程序在PATH中吗直接输入命令名即可运行例如: ffmpeg必须输入完整路径例如: C:\Program Files\ffmpeg\bin\ffmpeg.exe安装exe/msi将文件复制到系统目录如 C:\Program Files\SomeTool设置PATH环境变量将程序所在目录添加到系统搜索列表3. 闭源 vs 开源闭源可执行文件.exe这是商业软件或某些特定工具常见的分发方式。开发者不提供源代码只提供编译后的二进制文件。用户必须直接使用这个.exe文件。安装它和设置PATH是唯一的使用方式。例子许多专业的工业软件、某些游戏的启动器、部分商业SDK中的工具链。开源可执行文件.exe即使工具本身是开源的如 FFmpeg、ImageMagick对于大多数终端用户和其他语言的开发者来说最方便的方式依然是直接下载官方编译好的、针对自己操作系统Windows、macOS、Linux的二进制发布版。自己从源码编译通常很复杂、耗时。对于Python开发者而言如果这个工具功能被封装成了一个Python 包装库wrapper则可以通过pip安装。但这个pip包在背后做的两件关键事情可能就是下载对应平台的预编译二进制文件或指导你安装。确保这个二进制文件所在的路径能被你的 Python 代码找到有时通过修改运行时的路径而非全局PATH。总结与对比特性需要安装 .exe 并设 PATH 的依赖纯语言库依赖如pip install requests本质独立的系统级程序用各种语言编写被编译成原生机器码。用同种语言编写的库/模块如纯 Python、纯 JS在各自的解释器/虚拟机中运行。分发形式预编译的二进制可执行文件.exe,.dmg,.app,.deb等。源代码包.tar.gz,.whl由语言自身的包管理器处理。调用方式通过操作系统的进程间通信来调用子进程。在语言运行时内部通过导入import模块直接调用其函数。环境变量必需尤其是PATH以便系统定位可执行文件。通常不需要pip或npm会将库安装到语言自身的已知目录中。开源/闭源两者皆有可能。闭源软件只能以此形式分发。绝大多数是开源的。闭源的商业库也可能以二进制轮子.whl形式通过pip分发。