我正在为一个更大的系统开发一个python模块。我做了一个设置.py安装在主模块中的软件包。它工作正常,但后来我对模块做了一些更改,主要修改了py文件的名称,并重新组织了一堆类。在
然后我更新了该模块的版本,用pip卸载旧版本,并使用python安装新版本设置.py安装时,当我试图在ipython中导入时,发现我得到了一个旧的,被删除的模块。在
发现这很奇怪,检查了我的virtualenv lib文件夹,找到了这个模块的两个版本,有旧的类结构和新的类结构。两个都可用,因为我在ipython中导入并测试了它。在
它不会引起任何问题,因为我可以简单地使用最新版本,但会令人困惑。你知道为什么会这样吗?在
您可以尝试使用目录中的
pip
从setup.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
和{相关问题 更多 >
编程相关推荐