我有一个构建扩展的setup.py文件。如果我更改了其中一个源文件,distutils会识别这个并重建扩展,显示所有编译/链接命令。
但是,如果我唯一更改的是setup.py(我正在努力使库依赖项工作),那么它似乎没有重建(例如,没有任何编译/链接命令显示)。我已经通过删除行
中的一个源文件对此进行了测试sources = ['foo.c', 'bar.c' ...]
当我pip install -e .
或python setup.py install
时,它仍会为扩展创建一个新文件,但它必须是某个地方缓存的版本,因为它不应该编译。
如何清除此缓存?我试过了
python setup.py clean --all
或在执行--ignore-installed
--no-cache-dir
和pip install -e .
标记
我发现重建的唯一方法是在源文件中添加垃圾,触发重建和错误,删除垃圾,再次pip install -e .
......
答案 0 :(得分:7)
site-packages
路径下删除与其相关的任何文件,您可能会发现有时会将多个版本或某些文件打包为zip文件,或运行以下命令python setup.py clean --all
。但我建议您使用python setup.py develop
,这样您就不需要在每次更改时重新安装它,您就可以经常编辑代码而无需重新安装它。 python setup.py install
用于安装即用型第三方软件包。
点击此处以更好地了解python packaging。
<强>摘要强>:
python setup.py clean --all
python setup.py develop
答案 1 :(得分:1)
我需要运行
python setup.py clean --all
python setup.py develop
感谢DhiaTN让我到那儿。