我已经在C++中编写了Python扩展模块。 我打算用setuptools来分发模块。 将有32位和64位Windows(使用setup.py bdist_egg
构建)以及类似UNIX平台的源代码发布(使用setup.py sdist
构建)的二进制发行版。如何在setup.py脚本中包含许可证文件?
我打算根据BSD许可证授权模块。 在我的源代码树中,文件LICENSE.txt与setup.py一起位于顶层文件夹中。 我应该如何将它包含在安装包中?
我尝试以下setup.py脚本:
from setuptools import setup, Extension
from glob import glob
setup(
name = 'Foo',
version = '0.1.0',
ext_modules = [Extension('Foo', glob('Source/*.cpp'))],
package_data = {'': ['LICENSE.txt']}
)
它没有工作,许可证文件不包含在安装包。 也许是因为setup.py文件没有定义任何包,只有一个扩展模块 。
我该如何解决这个问题?
“LICENSE.txt”应为[“LICENSE.txt”]。路径“/”是UNIX上的系统根目录,在Windows上不存在;当我在Windows上测试时,我收到了有关不存在的路径的错误消息。使用“”替代似乎工作;当我测试LICENSE.txt文件夹“C:\ Python27 \ Lib \ site-packages \ Foo-0.1.0-py2.7-win32.egg”时,文件夹与Foo.pyd相同 – user763305 2012-04-03 07:36:56
@ user763305:I用你的评论编辑我的回答,对不起。如果我的答案解决了您的问题,请考虑将其标记为已接受,方法是单击答案左侧的复选标记。 – orlp 2012-04-03 08:00:08