【发布时间】:2014-09-10 14:27:23
【问题描述】:
我希望分发一些 python 脚本。这些脚本使用一些单独的包,例如 docopt,当然还使用了各种库。我希望能够将我的脚本与正常运行所需的一切一起打包。
根据我的阅读,最好的方法是使用 setuptools 和 setup.py 脚本。我想知道的是,setuptools 是否能够识别我的脚本中正在使用哪些包和库,并自动将所有相关包从当前位置复制到另一个目录以用于“新包”创建。还是我必须手动查找系统上的软件包安装并将它们复制到相关文件夹以创建“新软件包”?
我已经阅读了 setuptool 文档,但从我所阅读的内容看来,我似乎需要手动完成所有操作?如果是这样,我如何知道所有相关包和库在我的系统上的确切位置?
如果我理解正确,有人可以告诉我吗?
【问题讨论】:
-
不用手动试试看。
-
我看了一下这就是为什么我问我的理解是否正确。就像我认为的那样手动操作似乎很奇怪。当然它必须能够自动完成。
-
@martineau 我已经阅读了 setuptools 文档和 distutil 文档。我刚刚尝试使用基本元数据创建一个 setup.py,然后使用 setup.py dist 创建一个包。正如预期的那样,它没有做任何事情,用我的脚本文件和 setup.py 文件创建一个 dist 目录。我的脚本中使用的模块和库都没有复制到 dist 目录中。假设您打算手动收集所有包并将它们放在同一目录中,那么安全吗?
-
试试
setup.py build。您可能还会发现 Getting Started Withsetuptoolsandsetup.py很有用。 -
我已经阅读了它们并尝试了 sdist 和 build。创建包后,我通过
python setup.py install测试了从 setup.py 安装,但未安装所需的包。我收到以下错误python setup.py install /usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires' warnings.warn(msg)
标签: python setuptools