python - 从 setup.py 中获取 "build"目录的可靠方法

标签 python numpy setuptools distutils setup.py

在 setup.py 脚本中,我需要为安装创建一些临时文件。放置它们的自然位置是“build/”目录。

如果通过 pypi、源代码、easy_install、pip 等安装,有没有办法检索它的有效路径?

非常感谢!

最佳答案

默认情况下,distutils 在当前工作目录中创建 build/,但可以通过参数 --build-base 进行更改。似乎 distutils 在执行 setup 时解析了它,并且解析后的参数无法从外部访问,但你可以自己削减它:

import sys
build_base_long = [arg[12:].strip("= ") for arg in sys.argv if arg.startswith("--build-base")]
build_base_short = [arg[2:].strip(" ") for arg in sys.argv if arg.startswith("-b")]
build_base_arg = build_base_long or build_base_short
if build_base_arg:
    build_base = build_base_arg[0]
else:
    build_base = "."

这个原始版本的解析器仍然比 optparse 的版本短,对未知标志进行了适当的错误处理。您也可以使用 argparse 的解析器,它有 try_parse 方法。

关于python - 从 setup.py 中获取 "build"目录的可靠方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12896367/

相关文章:

python - 获取有序 CSV 文件中高于特定 unix 时间戳的行号的有效方法

python - 为什么 setup.py 表面上成功安装了我的包,但实际上却未能安装依赖项?

python - 导入错误 : The 'packaging.requirements' package is required

python - 删除 pandas 数据框中的字符串

python脚本忽略文件中的换行符

Python/matplotlib mplot3d-如何设置 z 轴的最大值?

python - 机器学习的数据分离

python - 我如何在 N 阶张量(ndarray)中根据自己的选择收缩 2 个指数

python - 如何用另一个 ndarray 索引一个 ndarray ?

Python:pip 找不到 setup.py