python setup.py卸载
我已经用python setup.py卸载,python,setup.py,pypi,Python,Setup.py,Pypi,我已经用python setup.py install安装了一个python包 如何卸载它?注意:避免使用python setup.py安装使用pip安装。 您需要手动删除所有文件,还需要撤消安装手动执行的任何其他操作 如果您不知道所有文件的列表,可以使用--record选项重新安装它,并查看由此产生的列表 要记录已安装文件的列表,可以使用: python setup.py install --record files.txt 要卸载后,可以使用xargs进行删除: xargs rm -rf
python setup.py install
安装了一个python包
如何卸载它?注意:避免使用
python setup.py安装
使用pip安装。
您需要手动删除所有文件,还需要撤消安装手动执行的任何其他操作
如果您不知道所有文件的列表,可以使用--record
选项重新安装它,并查看由此产生的列表
要记录已安装文件的列表,可以使用:
python setup.py install --record files.txt
要卸载后,可以使用xargs进行删除:
xargs rm -rf < files.txt
然后还删除包含目录,例如macOS上的/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/my_module-0.1.egg/
。它没有文件,但Python仍将导入一个空模块:
>>> import my_module
>>> my_module.__file__
None
一旦删除,Python将显示:
>>> import my_module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'my_module'
>>导入我的\u模块
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ModuleNotFoundError:没有名为“我的模块”的模块
转到python包目录并删除.egg文件,
例如。:
在python2.5(ubuntu)中:/usr/lib/python2.5/site-packages/
在python2.6(ubuntu)中:/usr/local/lib/python2.6/dist-packages/惰性方法:只要从Windows安装菜单(如果使用Windows)或rpm命令卸载,前提是在创建分发包后首先重新安装
比如说,
python setup.py bdist_wininst
dist/foo-1.0.win32.exe
(“foo”当然是一个例子)。扩展Martin所说的内容,记录安装输出和一点bash脚本非常好地完成了这项任务。我就是这么做的
for i in $(less install.record);
sudo rm $i;
done;
还有普雷斯托。已卸载。首先记录已安装的文件。即使以前运行过setup.py install
,也可以重复此命令:
python setup.py install --record files.txt
当您想要卸载时,您可以:
sudo rm $(cat files.txt)
这是因为rm命令需要删除一个以空格分隔的文件列表,而您的安装记录就是这样一个列表。对于我来说,以下主要工作方式是:
安装pip,例如:
$ easy_install pip
检查,从pip的角度来看,您安装的软件包的名称如何:
$ pip freeze
这将列出您已安装的所有软件包(以及pip检测到的软件包)的名称。
名称可以很长,然后只使用在#egg=
和之后显示的包的名称。在大多数情况下,您也可以忽略版本部分(无论后面是=
还是-
)
然后卸载软件包:
$ pip uninstall package.name.you.have.found
如果它要求确认删除该包,那么你是幸运的家伙,它将被删除
pip应检测由pip安装的所有软件包。它还应检测通过easy_install或setup.py安装的大多数软件包,但在某些罕见的情况下可能会失败
这是我在MS Windows上使用名为ttr.rdstmc
的包进行的本地测试的真实示例
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev
$ python setup.py develop
.....
.....
Finished processing dependencies for ttr.rdstmc==0.0.1dev
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
-e hg+https://vlcinsky@bitbucket.org/vlcinsky/ttr.rdstmc@d61a9922920c508862602f7f39e496f7b99315f0#egg=ttr.rdstmc-dev
ttr.utcutils==0.1.1dev
$ pip uninstall ttr.rdstmc
Uninstalling ttr.rdstmc:
c:\python27\lib\site-packages\ttr.rdstmc.egg-link
Proceed (y/n)? y
Successfully uninstalled ttr.rdstmc
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev
编辑2015-05-20
上面写的所有内容仍然适用,无论如何,现在有一些小的修改可用
在Python2.7.9和Python3.4中安装pip
最近的python版本附带了一个包ensurepip
,允许在脱机时安装pip:
$python-m ensurepip--升级
在某些系统(如Debian Jessie)上,这是不可用的(以防止破坏系统python安装)
使用grep
或find
上面的示例假设您已经安装了grep
。我安装了一套linux实用程序(包括grep),当时我的机器上安装了MS Windows。或者,使用本机MS Windowsfind
,或者干脆忽略该筛选,在检测到的python包的较长列表中查找名称。最好使用bash读取命令删除相关文件,如下所示:
sudo python setup.py install --record files.txt
sudo bash -c "cat files.txt | xargs rm -rf"
或许您可以将此作为备选方案:-
1) 获取python版本-
[linux machine]# python
Python 2.4.3 (#1, Jun 18 2012, 14:38:55)
->上面的命令提供了当前的python版本,即2.4.3
2) 获取python的安装目录-
[linux machine]# whereis python
python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/local/bin/python2.5 /usr/include/python2.4 /usr/share/man/man1/python.1.gz
->通过上面的命令,您可以获得安装目录-/usr/lib/python2.4/site packages
3) 从这里可以删除包和pythonegg文件
[linux machine]# cd /usr/lib/python2.4/site-packages
[linux machine]# rm -rf paramiko-1.12.0-py2.4.egg paramiko-1.7.7.1-py2.4.egg paramiko-1.9.0-py2.4.egg
这对我很有用。。我能够卸载困扰我的软件包:)1答案有问题:
- 在mac上不起作用
- 如果安装了包含空格或其他特殊字符的文件
字符时,
xargs
命令将失败,并删除任何
匹配单个单词的文件/目录
rm-rf
中的-r
是不必要的,最坏情况下可能会删除您需要的内容
我不想
相反,对于类unix:
sudo python setup.py install --record files.txt
# inspect files.txt to make sure it looks ok. Then:
tr '\n' '\0' < files.txt | xargs -0 sudo rm -f --
卸载setup.py
install也存在无法解决的问题,在典型情况下,这些问题不会困扰您。有关更完整的答案,请参阅此wiki页面:
现在python为您提供了在安装过程中安装pip
的选择(我在Windows上,至少python在Windows上是这样做的!)。考虑到您在安装python时选择了安装pip
(您实际上不必选择,因为它是默认的),pip
已经为您安装好了。然后,在命令提示符中键入pip
,您应该会看到出现一个帮助。你可以在那里找到必要的使用说明。例如,pip list
显示已安装软件包的列表。你可以用
pip uninstall package_name
卸载您不再需要的任何软件包。阅读更多信息。我认为您可以打开setup.py,找到包名,然后让pip卸载它
假设名称在“METADATA”变量中可用:
pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")
不是完全回答这个问题,而是每天都能帮助我的东西:
使用安装软件包
pip install .
这会将包放入$HOME/.local
中。使用卸载
pip uninstall <package_name>
pip卸载
我已经运行了“python setup.py I”
pip install .
pip uninstall <package_name>