代码之家  ›  专栏  ›  技术社区  ›  Dan

distutils忽略对设置的更改。py在构建扩展时?

  •  6
  • Dan  · 技术社区  · 9 年前

    我有一个设置。py文件,用于构建扩展名。如果我更改了其中一个源文件,distutils会识别出这一点,并重新构建扩展名,显示所有编译/链接命令。

    然而,如果我唯一改变的是设置。py(我正在尝试使库依赖项工作),然后它似乎无法重建(例如,没有显示任何编译/链接命令)。我已经通过删除行中的一个源文件来测试了这一点

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

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

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

    python setup.py clean --all
    

    或使用 --ignore-installed --no-cache-dir 执行时标记 pip安装-e。

    我找到的使其重建的唯一方法是在源文件中添加垃圾,触发重建和错误,移除垃圾,然后 pip安装-e。 再一次

    2 回复  |  直到 9 年前
        1
  •  10
  •   Dhia Chase Isley    7 年前
    1. 只需在下面删除 site-packages 路径与之相关的任何文件,有时可能会发现多个版本或一些打包为zip文件的文件,或者运行以下命令 python setup.py clean --all .
    2. 重新编译并重新安装。

    但我建议使用 python setup.py develop 因此,您不需要每次更改都重新安装它,您将能够频繁地编辑代码,而无需重新安装。 python setup.py install 通常用于安装现成的第三方软件包。

    检查此处以更好地理解 python packaging .

    总结 :

    python setup.py clean --all
    python setup.py develop
    
        2
  •  1
  •   Dan    9 年前

    我需要跑步

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

    感谢DhiaTN把我带到那里。