【问题标题】:What is the best way to create a script file for creating .zip files? [closed]创建用于创建 .zip 文件的脚本文件的最佳方法是什么? [关闭]
【发布时间】:2021-01-21 04:23:49
【问题描述】:

有几个命令。这些命令中的每一个都执行某些操作。我想将所有这些命令组合成一个脚本文件。运行此脚本后,我想在指定目录的输出中获取.zip 文件。创建此脚本以在 Linux 和 macOS 操作系统上运行的最佳方法是什么?使用.shMakefile 或其他什么更好?

例如,pip install cassandra-driver 命令在我的虚拟环境中安装了第三方包?我可以使用--target 命令将这个第三方包安装在我的操作系统上的特定目录中。是否可以立即将这个可下载的包包装在.zip 文件中?另外,您需要向此.zip 文件config.py 文件添加一个文件。

ma​​cOS

mkdir /src/dependencies/cassandra-driver
pip install cassandra-driver --targer /src/dependencies/cassandra-driver
zip -r cassandra-driver.zip /src/dependencies/cassandra-driver /src/config.py

【问题讨论】:

  • 不清楚...这个 zip 文件的预期内容是什么?对于 pip,您可以直接从 PyPi 下载,而不是安装,只需 download the package without installing 或使用 wget(或类似名称)即可。至于“最佳方式”,这将导致基于意见的答案,这在此处是题外话。你要一个跨平台的 shell 脚本吗?可以在 Linux 和 mac 上运行的东西?你现在的那 3 行有什么问题?将这 3 行放在一个脚本中似乎很简单,但是你提到了 Makefile,它变得混乱了。
  • ...或者您是否要求一个适用于任何 Python 包的脚本?如果环境没有pip 可用怎么办?
  • 简而言之,我需要这个来为AWS Lambda Layers 归档包。我想了解如何优化命令。更准确地说,结合第二个和第三个命令。正如我在帖子中所问的,是否可以立即将这个可下载的包包装在.zip 文件中?我不想存储这个第三方包。此外,我的第三个命令引发了这样的错误:zip error: Nothing to do! (try: zip -r cassandra-driver.zip . -i /src/config.py)。我尝试在错误消息中使用此命令,但它返回一个空的 .zip 文件。你有什么想法? `.

标签: python linux macos operating-system zip


【解决方案1】:

只需创建一个 bash 脚本并在 *nix 上执行它。

使用参数来指定应该将什么包压缩到什么位置以及应该添加什么配置。

#!/bin/bash

packageName=$1
destinationPath=$2
configLocation=$3

mkdir /tmp/$packageName
pip download $packageName -d /tmp/$packageName
zip -r $destinationPath/$packageName.zip /tmp/$packageName/* $configLocation
rm -rf /tmp/$packageName

用于:

bash /path/scriptName.sh cassandra-driver /src/dependencies/ /src/config.py

scriptName.sh 是这个脚本,

cassandra-driver包名,

/src/dependencies/要存储.zip的路径,

/src/config.py 要附加到存档的文件的完整路径。

编辑:它现在将包下载为 .zip 而不安装它。

【讨论】:

  • 是否可以合并脚本的第二行和第三行?归档后,我不需要第三方包。您将不得不编写一个额外的命令来删除它。不是吗?
  • 你想删除下载的包,因为你现在有 zip?
  • 是的,你是对的。正如我在帖子中所问的,是否可以立即将这个可下载的包包装在.zip 文件中?我不想存储这个第三方包。
  • 我可以在脚本的第三行指定将zip文件放在哪里的输出目录吗?
  • 查看我的编辑。它现在不安装软件包,而是立即下载 .zip。
猜你喜欢
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-17
  • 2014-01-22
  • 2014-03-28
  • 1970-01-01
相关资源
最近更新 更多