[英]python setup.py configuration to install files in custom directories
我想创建一个 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
放入“bin”并将其他 python 文件放入“libexec”? 我看到实现该目标的唯一方法是在我的setup.py
脚本中手动复制这些文件。 也许有一种更清洁、更标准的方法来做到这一点?
通过使用setup函数的scripts
参数来处理scripts
。 对于libexec,您可以将它们视为数据文件并使用数据选项。
setup(...
scripts=glob("bin/*"),
data_files=[(os.path.join(sys.prefix, 'libexec', 'mypackage'), glob("libexec/*"))],
...
)
我不确定如何使用--prefix
选项,我从来没有尝试过。
我最终得到了这样的setup.py
:
setup(name='mylib',
scripts=['script.sh'],
data_files=[('libexec', ['one.py', 'two.py'])]
)
当然,您可以为 libexec 遍历所有 python 个文件,但我只需要 2-3 个 python 个文件。
此外,我可以使用以下内容设置setup.cfg
:
[install]
prefix=/my/prefix
而不是python setup.py install --prefix=/my/prefix
我可以这样做:
python setup.py install
该答案作为对问题python setup.py 配置的编辑(编辑 1 、编辑 2 )发布,以在 CC BY-SA 3.0 下由 OP Ago在自定义目录中安装文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.