为什么是设置.py安装旧文件?

2024-03-29 11:00:23 发布

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

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

然后我更新了该模块的版本,用pip卸载旧版本,并使用python安装新版本设置.py安装时,当我试图在ipython中导入时,发现我得到了一个旧的,被删除的模块。在

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

它不会引起任何问题,因为我可以简单地使用最新版本,但会令人困惑。你知道为什么会这样吗?在


Tags: 模块pip文件py版本文件夹名称virtualenv
2条回答

您可以尝试使用目录中的pipsetup.py文件中使用pip install -e .进行安装。这将在editable mode中安装包。它将安装您对代码所做的任何更改。在

如果不使用pip安装,则无法使用pip进行卸载,因此实际上从未卸载旧版本。python setup.py install将安装不同的版本,但它们通常安装在旧版本之上(除了.egg-info文件或目录)。您没有说明这两个版本是如何共存的,因为setup.py(或pip)不会将site-packages/my_module重命名为my_module_v1。我假设您更改了目录结构和.py文件名,使得这两个版本可以在同一个父目录中共存,所以在IPython中可以运行from my_module import OldClassName和{}。在

相关问题 更多 >