在 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/