我写了一些代码,我想打包成一个鸡蛋。这是我的目录结构:
src/ src/tests src/tests/test.py # this has several tests for the movie name parser src/torrent src/torrent/__init__.py src/torrent/movienameparser src/torrent/movienameparser/__init__.py # this contains the code
我想将这个目录结构打包成一个egg,并包含测试文件。我应该在setup.py
文件中包括什么,以便可以有任意数量的名称空间和任意数量的测试?在
这是我想分享的第一个开源代码。尽管,也许我会是唯一一个觉得这个模块有用的人,我还是想把它上传到pypi
。我可以使用什么许可证来允许用户对代码做他们想做的事情,而不受重新分发、修改的限制?在
即使我计划更新这个鸡蛋,我也不想为任何事情负责(比如为用户提供支持)。我知道这听起来可能很自私,但这是我的第一个开源代码,所以请容忍我。我需要提供许可证的副本吗?我在哪能找到一本?在
谢谢你阅读这些。在
包含来自setuptools website的ez\u安装文件,并将其包含在设置.py公司名称:
这个脚本是一个帮助谁没有设置工具。它下载并在未安装setuptools的系统上安装最新版本的setuptools。在
最好以tarball(
.tar.gz
)的形式分发它,而不是作为一个鸡蛋。Eggs主要用于二进制分发,例如在使用编译的C扩展时。在纯源代码发行版中,它们只是不必要的复杂性。在如果你只是想把你的代码扔到世界各地,麻省理工学院或3条款的BSD许可证是最受欢迎的选择。两者都包括免责声明。您只需在tarball中包含主许可证;通常为“最终用户许可协议或类似的。或者,您可以向每个源文件添加一个小的版权通知;我鼓励这样做,因此即使没有整个归档文件,每个文件的状态也很明显,但是有些人认为这太冗长了。这是个人喜好的问题。在
BSD许可证在Wikipdia上提供,复制如下:
我在这里不讨论许可证问题,但通常在包源代码的根目录中包括许可证文件,以及其他常见的东西,如自述文件等
我通常按照在目标系统上安装的方式来组织软件包。对标准包布局约定进行了解释here.
例如,如果我的包是“torrent”,并且它有两个子包,如“tests”和“util”,则源树如下所示:
这个'torrent/torrent'位似乎是多余的,但这是这个标准约定和Python导入工作方式的副作用。在
以下是极简主义者
^{pr2}$setup.py
(更多关于how to write the setup script)的信息:要获得源发行版,我会执行以下操作:
这个发行版(
dist/torrent-0.1.tar.gz
)可以单独使用,只需将其解包并运行setup.py install
,或者使用setuptools
工具箱中的easy_install
。而且您不必为每个受支持的Python版本生成几个“鸡蛋”。在如果您真的需要一个egg,您将需要在您的
setuptools
上添加一个依赖项,这将引入一个额外的子命令bdist_egg
来生成鸡蛋。在但是}中枚举包:
setuptools
的另一个优点是除了它产生卵子的特性之外,它不需要用一个很好的辅助函数find_packages
在{然后,为了得到一个“鸡蛋”,我要做的是:
。。。它会给我一个egg文件:
dist/torrent-0.1-py2.6.egg
注意
py2.6
后缀,这是因为我的机器上有python2.6。如果你想取悦很多人,你需要为每个主要的Python版本发布一个egg。你不想让一大群拿着斧头和矛的Python2.5人出现在你家门口,是吗?在但您不必构建egg,仍然可以使用
sdist
子命令。在更新:下面是Python文档中的another useful page,从用户的角度介绍了
Distutils
。在相关问题 更多 >
编程相关推荐