清除C++扩展目录设置.py

2024-09-30 22:25:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含C++扩展的Python包。在

C++扩展是使用自己的Mag文件在^ {CD1>}中建立的,.so文件是在自己的子文件夹中创建的,然后在生成文件夹中复制。在

当我调用python setup.py clean时,只有构建目录被删除,但是cxxextension/build没有被删除,所以如果我再次构建它,它只是被复制而不是重新编译。在

如何指示setup.py clean同时删除我的cxxextension/build文件夹?在


Tags: 文件pybuild目录文件夹cleansosetup
2条回答

最简单的方法可能是在设置.py. 你可以在打电话之前加上这样的东西distutils.设置公司名称:

import sys, shutil
if 'clean' in sys.argv:
    shutil.rmtree('cxxextension/build')

这个被接受的答案让我害怕,因为路径是相对的,当从python脚本中删除用户端的任何内容时,应该格外小心。您应该使用以下内容获取构建位置:

curdir = os.path.dirname(os.path.realpath(__file__))
buildir = curdir+os.sep+"build"

一旦您构建了一个更安全的路径,就可以将dir传递给shutil.rmtree。在

另外,安全获取当前路径的更好方法是How do I get the path and name of the file that is currently executing?

相关问题 更多 >