猿问

Python Makefile 库

尽管这听起来微不足道,但我应该如何在 Python 生成文件中导入库?

我正在创建一个基本的 Python 生成文件,例如:

all: my_file.py
    python3 my_file.py

但是,我在 my_file.py 中使用了特定的库,未包含/导入到基本包中,例如:xlswriter. 因此,如果有人试图运行代码,他们必须在终端中输入类似于以下内容的内容:

$ sudo apt-get install python3-xlsxwriter

所以我的问题是如何调整我的 Makefile,以便外部用户仅通过$ make命令运行程序就足够了(并且它会自动继续安装包)。提前致谢!


侃侃无极
浏览 186回答 1
1回答

qq_花开花谢_0

一般来说,为您的用户进行安装更改是一个坏主意。他们的系统由他们控制,如果他们决定不想安装额外的软件包,因此无法使用您的脚本,这通常由他们决定。sudo对他们使用是一个更糟糕的想法,可能会被检测为攻击。如果你在你的代码和sudo rm -r他们的硬盘上犯了一些奇怪的错误怎么办?尊重权限层次结构 - 全局安装取决于超级用户,本地安装并且运行脚本取决于用户,并且脚本承诺完成的工作完全取决于您 - 满足所有要求(即也应该列出)。在import本身并不在Makefile中完成,但在你的Python脚本。那就是我会检测它的地方,并产生错误通知用户他们需要做什么。所以在你的脚本中,我会有类似的东西:try:     import xslwriter    #Add as as many imports as you would like to check for.except ModuleNotFoundError as e:    print("-E- Failed to import prerequisite {}. Please install prior to running this script.".format(e.name))    exit(1)您也可以print提供安装建议(检测os并决定您是否建议yum或apt(如果是 Linux 风格而不是 Windows),使用pip哪个总是有效等)。exit(1)表示您的程序因错误而停止,并且 Makefile 配方也会失败。这样,脚本会正确发出警告,并且也可以独立运行。
随时随地看视频慕课网APP

相关分类

Python
我要回答