fly*_*ire 747 python pypi setup.py
我已经安装了一个python包python setup.py install.
我该如何卸载它?
Mar*_*wis 938
您需要手动删除所有文件,还要撤消安装手动执行的任何其他操作.
如果您不知道所有文件的列表,可以使用该python setup.py install选项重新安装它,并查看它生成的列表.
要记录已安装文件的列表,您可以使用:
python setup.py install --record files.txt
Run Code Online (Sandbox Code Playgroud)
一旦要卸载,可以使用xargs进行删除:
xargs rm -rf < files.txt
Run Code Online (Sandbox Code Playgroud)
或者,如果您正在运行Windows,请使用Powershell:
Get-Content files.txt | ForEach-Object {Remove-Item $_ -Recurse -Force}
Run Code Online (Sandbox Code Playgroud)
然后删除包含目录,例如pip install .on --record.它没有文件,但Python仍然会导入一个空模块:
>>> import my_module
>>> my_module.__file__
None
Run Code Online (Sandbox Code Playgroud)
删除后,Python会显示:
>>> import my_module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'my_module'
Run Code Online (Sandbox Code Playgroud)
Jan*_*sky 210
对我来说,以下几乎是有效的:
已安装pip,例如:
$ easy_install pip
Run Code Online (Sandbox Code Playgroud)
检查,您从pip角度命名的安装包如何:
$ pip freeze
Run Code Online (Sandbox Code Playgroud)
这将列出您已安装的所有软件包的名称(以及由pip检测到的软件包的名称).名称可能有些长,然后只使用在和之后显示的包的名称#egg=.在大多数情况下,您也可以忽略版本部分(无论是后续的==还是-).
然后卸载包:
$ pip uninstall package.name.you.have.found
Run Code Online (Sandbox Code Playgroud)
如果它要求确认删除包裹,那么你是幸运的人,它将被删除.
pip将检测由pip安装的所有软件包.它还应检测通过easy_install或setup.py安装的大多数软件包,但在极少数情况下可能会失败.
这是来自我本地测试的真实样本,包含ttr.rdstmc在MS Windows上命名的包.
$ 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
Run Code Online (Sandbox Code Playgroud)
以上所写内容仍然适用,无论如何,现在有一些小的修改.
最近的python版本带有一个包ensurepip,即使在离线时也允许安装pip:
$ python -m ensurepip --upgrade
在某些系统(如Debian Jessie)上,这是不可用的(以防止破坏系统python安装).
grep或find上面的示例假设您已grep安装.我(在我的机器上有MS Windows时)安装了一组linux实用程序(包括grep).或者,使用本机MS Windows find或者只是忽略该过滤并在更长的检测到的python包列表中找到该名称.
Ian*_*ing 73
#1答案有问题:
xargs命令将失败,并删除与单个单词匹配的任何文件/目录.-r中rm -rf是不必要的,在最坏的情况可能会删除你不想要的东西.相反,对于unix-like:
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 --
Run Code Online (Sandbox Code Playgroud)
对于Windows:
python setup.py bdist_wininst
dist/foo-1.0.win32.exe
Run Code Online (Sandbox Code Playgroud)
卸载setup.py安装也存在无法解决的问题,在典型情况下不会打扰您.有关更完整的答案,请参阅此Wiki页面:
https://ofswiki.org/wiki/Uninstalling_setup.py_install
小智 35
首先记录您已安装的文件.您可以重复此命令,即使您以前运行过setup.py install:
python setup.py install --record files.txt
Run Code Online (Sandbox Code Playgroud)
当您要卸载时,您可以:
sudo rm $(cat files.txt)
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为rm命令需要删除一个空格分隔的文件列表,而您的安装记录就是这样一个列表.
Sна*_*ƒаӽ 17
现在python让你可以选择在安装pip过程中安装(我在Windows上,至少python是为Windows做的!).考虑到您pip在安装python期间选择安装(实际上您不必选择,因为它是默认设置),pip已经为您安装了.然后,pip在命令提示符下键入,您应该看到一个帮助.你可以在那里找到必要的使用说明.例如,pip list显示已安装软件包的列表.您可以使用
pip uninstall package_name
Run Code Online (Sandbox Code Playgroud)
Nic*_*mer 10
不完全回答这个问题,但每天都在帮助我:
安装你的软件包
pip install .
Run Code Online (Sandbox Code Playgroud)
这会将包放入$HOME/.local. 卸载
pip uninstall <package_name>
Run Code Online (Sandbox Code Playgroud)
懒惰的方式:只需从Windows安装菜单(如果您使用的是Windows)或rpm命令卸载,只要您在创建分发包后首先重新安装它.
例如,
python setup.py bdist_wininst
dist/foo-1.0.win32.exe
Run Code Online (Sandbox Code Playgroud)
("foo"当然是一个例子).
转到你的python包目录并删除你的.egg文件,例如:在python 2.5(ubuntu)中:/usr/lib/python2.5/site-packages/
在python 2.6(ubuntu)中:/usr/local/lib/python2.6/dist-packages/
| 归档时间: |
|
| 查看次数: |
410833 次 |
| 最近记录: |