python - 构建扩展时,distutils 会忽略对 setup.py 的更改吗?

标签 python c pip distutils setup.py

我有一个构建扩展的 setup.py 文件。如果我更改其中一个源文件,distutils 会识别这一 pip 并重建扩展,显示所有编译/链接命令。

但是,如果我唯一更改的是 setup.py(我正在尝试使库依赖项工作),那么它似乎不会重建(例如,没有编译/链接命令显示)。我通过删除行中的一个源文件对此进行了测试

sources = ['foo.c', 'bar.c' ...]

当我 pip install -e .python setup.py install 时,它仍然会为扩展创建一个新文件,但它必须是缓存在某处的版本,因为它不应该编译。

如何清除此缓存?我试过了

python setup.py clean --all

或在执行 pip install -e 时使用 --ignore-installed--no-cache-dir 标志。

我发现让它重建的唯一方法是如果我在源文件中添加垃圾,触发重建和错误,删除垃圾,然后 pip install -e . 再次...

最佳答案

  1. 只需删除 site-packages 路径下的任何相关文件,您可能会发现有时会有多个版本或一些文件打包为 zip 文件或运行以下命令 python setup.py干净 --all.
  2. 重新编译安装。

但我会推荐使用 python setup.py develop 这样你就不需要每次更改都重新安装它,你将能够经常编辑你的代码而不必重新安装再次。 python setup.py install 通常用于安装随时可用的第三方包。

pip 击此处以更好地理解 python packaging .

总结:

python setup.py clean --all
python setup.py develop

关于python - 构建扩展时,distutils 会忽略对 setup.py 的更改吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34928001/

相关文章:

Python - 匹配变量正则表达式,包括双括号

python - 如何爬取页面导航涉及动态加载的网站

c++ - 如何访问由 udev 在 opencv 中链接的网络摄像头

python - 更新已安装的应用程序

python - 包的正确 Python 项目结构

python -m pip install -U pip Errno 11004

Python:求解矩阵方程 Ax = b,其中 A 包含变量

c - sizeof 对同一结构返回不同的值

c - 为什么 realloc 在此 while 循环中不起作用?

c - 如何强制链接器将字符串数组的 const 数组存储到闪存中(而不是 RAM)