蟒蛇setup.py配置中安装自定义目录中的文件(python setup.py configura

2019-07-29 06:56发布

我要创造条件,安装我的文件到自定义目录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

我能得到“一揽子”很好地安装在--prefix下默认位置是正确的目录中的lib / pythonX.Y / site-packages中。 但有一个干净的方式来获得进入script.sh“仓”等Python文件到“的libexec”? 我看到实现这一目标的唯一方法是将这些文件在我的setup.py脚本手动复制。 也许,是有一个更清洁,更标准的方式来做到这一点?

(编辑)

我结束了这样的setup.py:

setup(name='mylib',
  scripts=['script.sh'],
  data_files=[('libexec', ['one.py', 'two.py'])]
)

当然,你可以遍历所有的Python文件的libexec,但我只有我需要有2-3个Python文件。

(EDIT2)

此外,我还可以有以下setup.cfg:

[install]
prefix=/my/prefix

而不是python setup.py install --prefix=/my/prefix我可以这样做:

python setup.py install

Answer 1:

这些脚本通过使用的处理scripts参数设置功能。 对于libexec目录,你可以把它们作为数据文件和使用数据的选项。

setup(...
    scripts=glob("bin/*"),
    data_files=[(os.path.join(sys.prefix, 'libexec', 'mypackage'), glob("libexec/*"))],
    ...
)

我不知道怎么会与工作--prefix选项,我从来没有尝试过。



文章来源: python setup.py configuration to install files in custom directories