了解如何使用setuptools实现python脚本的分发

时间:2014-09-10 14:27:24

标签: python setuptools

我正在寻找分发一些python脚本。脚本使用一些单独的包,例如docopt,当然也使用各种库。我希望能够将我的脚本以及正常运行所需的所有内容打包。

根据我的阅读,最好的方法是使用setuptools并使用setup.py脚本。我想知道的是,setuptools能够识别我的脚本中正在使用的包和库,并自动将所有相关包从当前位置复制到另一个目录中,以用于创建“新包”。或者我是否必须在我的系统上手动查找软件包安装并将其复制到相关文件夹中以创建“新软件包”?

我已经阅读了setuptool文档但是从我所看到的内容看起来好像我需要手动完成所有操作?如果是这样,我怎么知道我系统上所有相关软件包和库的确切位置?

如果我理解这一点,有人会告诉我吗?

1 个答案:

答案 0 :(得分:0)

好的,我终于开始工作了。

以防其他人遇到这篇文章并想知道该怎么做。

这个想法是你有一个你想要分享的脚本,但是这个脚本使用了各种其他模块,软件包等。有人想要做的最后一件事是开始将它们全部一起删除以创建一个非工作的手册包。

通过创建setup.py文件并指定要包含在脚本中的软件包,可以自动完成。自动包含所有"所需的包"在安装过程中完成(因此有人拥有您的新共享脚本并使用easy_install进行安装)。

要为脚本生成分发包,您需要执行以下操作。

  • 确定您需要包含的软件包(查看代码)。
  • 将脚本移动到新文件夹(这将是包容器)。
  • 按照此post中的说明在您的发布中创建您喜欢的相关文件。 (注意" install_requires"字段)
  • 从命令行执行python setup.py sdist,确保您当前的工作目录是新包的目录。
  • 您的发行包现在位于目录区。
  • 传递给你的朋友。他们需要从here安装setuptools / easy_install。
  • 安装后,他们可以通过执行easy_install packagename-0.1.0.tar.gz来安装您的软件包。现在,这将安装所有必需的软件包,当然还有您的脚本。