我想创建一个setup.py,将我的文件安装到自定义目录中。我有一个特定的前缀,在这里我想得到以下结果:/my/prefix/
bin/
script.sh
libexec/
one.py
two.py
...
lib/pythonX.Y/site-packages/
package/...
我的初始项目如下:/
script.sh
one.py
two.py
...
setup.py
package/...
__init__.py
...
实现这一目标的最佳途径是什么?我希望以后能够使用以下内容安装它:python setup.py install --prefix=/my/prefix
我可以很好地将“package”安装在正确的目录中,因为lib/pythonX.Y/site-packages在--prefix是默认位置。但是,有没有一种干净的方法可以将script.sh放入“bin”,将其他python文件放入“libexec”?我看到的唯一实现方法是在setup.py脚本中手动复制这些文件。有没有更干净更标准的方法?
(编辑)
解决方案
我最后得到了这样的setup.py:setup(name='mylib',
scripts=['script.sh'],
data_files=[('libexec', ['one.py', 'two.py'])]
)
当然,您可以遍历libexec的所有python文件,但我在那里只需要2-3个python文件。
(编辑2)
此外,还可以使用setup.cfg来执行以下操作:[install]
prefix=/my/prefix
而不是python setup.py install --prefix=/my/prefix我可以做的是:python setup.py install