删除以开发模式安装的python模块


90

嗨,我正在尝试使用setuptools进行python打包,并测试我是否在开发模式下安装了该模块。即

python setup.py develop

这已将我的模块目录添加到sys.path。现在我要删除模块,有什么办法吗?

提前致谢


4
开始使用pip或具有卸载功能的其他管理器来管理python软件包。
Tomasz Wysocki 2010年

1
@Tomasz你怎么做python setup.py developpip
2011年

7
pip install -e。
Tomasz Wysocki

11
“ pip”不是此问题的正确答案。为了运行或使用'pip'安装正在开发的项目,这意味着您每次修改源代码都必须重新安装。正确的方法是将“ setup.py development”用作原始问题。
乔纳森·哈特利

6
@JonathanHartley这完全是错误的;pip有一个--editable(或-e)参数,其行为与setuptools'大致相同develop。我认为这可能--editable比您的评论要新,但是没有-不,在GitHub上对pip repo的快速搜索可以追溯到2009年提交中对可编辑内容的引用。此外,我看到Tomasz Wysocki已经指出了这一点,然后再发表评论!
Mark Amery

Answers:


223

--uninstall-u选项用于develop,即:

python setup.py develop --uninstall

这将从easy-install.pth中删除它,并删除.egg-link。它唯一没有做的就是删除脚本(还)。


3
请注意,如果您的开发版本安装了一些可执行文件,并且您在中进行了更改setup.py,则应手动删除它们。
norok2'8

1
我按照说明运行它,输出中没有错误,但是我仍然可以将我的开发包全局导入,看来它还没有被删除。编辑:我知道为什么,我必须--user像在安装过程中那样使用选项运行它:python setup.py develop --uninstall --user
Marek

我认为这样做不安全,因为在开发(例如)重命名模块时可能会发生变化。您需要手动删除所有内容。
Mathtick

@ norok2必须执行哪些手动命令才能删除那些可执行文件。据我所知,以上内容适用于特定版本的python / pip,尽管我不确定哪个版本。
查理·帕克

1
@CharlieParker rmdel取决于您的操作系统。我的意思是,如果您在安装时有一些可执行文件,然后在中更改了它们的名称(或删除了它们)setup.pysetup.py则将不再了解它们(无论您的pip/ python版本是什么,您都需要照顾它们) 。手动它们通常位于一些bin对POSIX目录(读Linux版本,BSD系统,MacOS X系统)系统,可以不记得赢。
norok2

16

在site-packages目录中编辑easy-install.pth,然后删除指向该软件包的开发版本的行。


是的,我确实做到了这一点,还有一个文件名为package-egg-link或我已删除的东西,现在已删除了对该模块的引用,谢谢:)
copyninja 2010年

10
“ setup.py development --uninstall”为您完成此操作,请参阅@pjeby的答案
Jonathan Hartley

3
这在我develop --uninstall失败时对我有用,因为我将一个项目分为两个,并且错误的一个保留在原始目录中。
Wesley Baugh 2013年

1

我以前也有类似的问题。我要做的是加载Python shell,导入模块,然后打印其__file__属性。从那里,我只删除正在关联的文件夹或文件。

您可能想要使用的是virtualenv,该系统允许您从系统中创建python实例。您在此实例中安装或使用的所有模块都是自包含的,包括模块的版本。

现在,我将所有项目都保留在自己包含的virtualenv中,这使我可以安装和使用所需的任何模块,而不必担心将其他项目中的模块弄糟。


那么从下一次我使用软件包开始,我将使用它,这样我就不会搞砸我的系统Python。感谢您提供信息
-copyninja
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.