gpt4 book ai didi

python - 为什么 setup.py 安装旧文件?

转载 作者:太空狗 更新时间:2023-10-30 01:01:27 27 4
gpt4 key购买 nike

我正在为一个更大的系统开发一个 python 模块。我做了一个 setup.py 包来将它安装在主模块中。它工作正常,但后来我对我的模块做了一些更改,主要是修改了 py 文件的名称,并重新组织了一堆类。

然后我更新了模块的版本,用 pip 卸载旧版本,并使用 python setup.py install 安装新版本,当我尝试在 ipython 中导入时发现我得到了旧的,已删除的模块。

发现它很奇怪并检查了我的 virtualenv lib 文件夹并找到了模块的两个版本,具有旧的类结构和新的类结构。并且都可用,因为我在 ipython 中导入并测试了它。

它不会引起任何问题,因为我可以简单地使用最新版本,但会造成混淆。知道为什么会出现这种行为吗?

最佳答案

如果您不使用pip 安装,您将无法使用pip 进行卸载,因此您从未真正卸载过旧版本。 python setup.py install 将安装不同的版本,但通常它们安装在旧版本之上(.egg-info 文件或目录除外)。你没有说这两个版本究竟是如何并存的,因为 setup.py(或 pip)不会重命名 site-packages/my_modulemy_module_v1,例如。我假设您已充分更改目录结构和 .py 文件名,使两个版本可以共存于同一父目录中,因此在 IPython 中您可以运行 from my_module import OldClassNamefrom my_module import NewClassName

关于python - 为什么 setup.py 安装旧文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25817254/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com