lof*_*ops 81 package-management python pip
我不小心使用pip
而不是apt-get
. 我通过两种方式做到了这一点:
--no-site-packages
在创建virtualenv时忘记附加- 之后当我调用时pip install
,安装到系统的Python包而不是virtualenvsudo pip install somepackage
- 安装到系统的 sudo 而不是 virtualenv我碰巧注意到了这一点,因为我pip freeze
在 virtualenv 之外输入了内容,并发现了一些不应该存在的 Python 包。所以现在我的问题是:
pip freeze
列表中但未使用 安装的Python 包apt-get
)?Cap*_*iel 59
Ubuntu Oneiric(我也期待更新的版本)将 pip 包安装到/usr/local/lib/python2.7/dist-packages
,并将apt
包安装到/usr/lib/python2.7/dist-packages
. 所以只需检查以前的目录和sudo pip uninstall
你在那里找到的每个包。
小智 30
Pip 目前会忽略试图卸载操作系统拥有的东西的卸载命令。它不会出错,就像丢失包一样。因此,现在您可以通过以下过程进行卸载:
pip freeze > dump.txt
Run Code Online (Sandbox Code Playgroud)
编辑转储文件以删除任何-e
“可编辑安装”行,==
符号后面的所有内容(%s;==.*;;g
在 vim 中),将新行替换为空格(%s;\n; ;g
在 vim 中)。然后你可以卸载所有未拥有的包
cat dump.txt | xargs sudo pip uninstall -y
Run Code Online (Sandbox Code Playgroud)
我不得不执行此过程两次,因为也安装了一些软件包~/.local/lib
。
一个单线来完成这个:
pip freeze > dump.txt
Run Code Online (Sandbox Code Playgroud)
AFAIKsudo pip install
将安装在/usr/local/lib/pythonVERSION/dist-packages
. 您需要运行sudo pip uninstall
以在系统范围内卸载软件包。似乎pip freeze
寻找包元数据并将列出安装的任何内容,即来自 pip 以及 virtualenvs 之外的 apt-get。-l
虚拟环境中有选项可以列出仅适用于该虚拟环境的包,但它似乎也是虚拟环境中的默认情况。我认为您也可以删除相关的包,/usr/local/lib/pythonVERSION/dist-packages
但我猜这不是很方便的方法。
要删除通过 pip 安装的软件包,只需按键盘上的Ctrl+ Alt+T打开终端。当它打开时,运行下面的命令。
pip uninstall < package-name >
Run Code Online (Sandbox Code Playgroud)
搜索包
pip search <package you want to search for>
Run Code Online (Sandbox Code Playgroud)
要确定 pip 安装了哪些 Python 包,请通过freeze
命令,该命令将为您提供已安装包及其版本的列表。我建议删除所有实例,然后使用sudo apt-get
命令重新安装
sudo apt-get install python3
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
329074 次 |
最近记录: |