gpt4 book ai didi

python setup.py 配置在自定义目录中安装文件

转载 作者:太空狗 更新时间:2023-10-29 17:19:48 29 4
gpt4 key购买 nike

我想创建一个 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.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

最佳答案

脚本是通过使用设置函数的scripts 参数来处理的。对于 libexec,您可以将它们视为数据文件并使用数据选项。

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

我不确定如何使用 --prefix 选项,我从未尝试过。

关于python setup.py 配置在自定义目录中安装文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10458158/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com