为了账号安全,请及时绑定邮箱和手机立即绑定

Python Makefile 库

Python Makefile 库

侃侃无极 2021-12-09 18:21:54
尽管这听起来微不足道,但我应该如何在 Python 生成文件中导入库?我正在创建一个基本的 Python 生成文件,例如:all: my_file.py     python3 my_file.py但是,我在 my_file.py 中使用了特定的库,未包含/导入到基本包中,例如:xlswriter. 因此,如果有人试图运行代码,他们必须在终端中输入类似于以下内容的内容:$ sudo apt-get install python3-xlsxwriter所以我的问题是如何调整我的 Makefile,以便外部用户仅通过$ make命令运行程序就足够了(并且它会自动继续安装包)。提前致谢!
查看完整描述

1 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

一般来说,为您的用户进行安装更改是一个坏主意。他们的系统由他们控制,如果他们决定不想安装额外的软件包,因此无法使用您的脚本,这通常由他们决定。


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 配方也会失败。这样,脚本会正确发出警告,并且也可以独立运行。


查看完整回答
反对 回复 2021-12-09
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信