我正在尝试安装 chatterbot ,它依赖于 PyYAML = 3.12 。在我的Ubuntu机器上安装 PyYAML 版本是3.11。所以我使用以下命令升级 PyYAML :
sudo -H pip3 install --upgrade PyYAML
但它会出现以下错误:
无法卸载PyYAML'。这是一个distutils安装项目和 因此我们无法准确地确定哪些文件属于哪个文件 只会导致部分卸载。
我的 pip3 版本是10.0.0。
如何解决这个问题?
答案 0 :(得分:16)
尝试使用--ignore-installed
标志:
sudo -H pip3 install --ignore-installed PyYAML
之所以起作用,是因为要升级软件包,pip
首先卸载旧版本,然后安装新版本。对于distutils软件包,卸载步骤失败。使用--ignore-installed
标志,跳过卸载步骤,而仅将新版本安装在旧版本之上。
答案 1 :(得分:14)
我发现in this Github issue 点10不再卸载distutils包。所以我降级到8.1.1。现在它有效。
如果有人正在查看此问题,知道如何使用pip 10.0.0卸载或升级 distutils 包,请在此处告知我们。 :)
(如果有人需要)
为了降级pip,我使用了以下内容:
high - low
答案 2 :(得分:5)
您可以尝试以下方法:
$pip install --ignore-installed PyYAML
答案 3 :(得分:4)
我个人是在anaconda上安装了PyYAML,只是执行“ conda remove PyYAML”,然后执行我的pip命令即可。
答案 4 :(得分:3)
sudo rm -rf /usr/lib/python3/dist-packages/yaml
sudo rm -rf /usr/lib/python3/dist-packages/PyYAML-*
从distutils删除文件夹的工作原理
答案 5 :(得分:0)
我也遇到过类似的问题,其中conda安装了PyYAML
软件包。还有使用conda remove
的答案。
相反,我使用conda update PyYAML
解决了这个问题,有效地使用了conda来更新pip试图更新的依赖项。
答案 6 :(得分:0)
conda remove PyYAML
pip install chatterbot
pip install chatterbot_corpus
这样,当我尝试从chatterbot导入chatbot
尝试时,它解决了我的错误。答案 7 :(得分:0)
我只需要卸载 python3-yaml 并再次尝试使用 pip
@PostMapping("/")
public void saveMeeting(@RequestBody MeetingSettingDTO meetingSettingDTO){
MeetingsSetting meetingsSetting = new MeetingsSetting();
meetingsSetting.setMeetingName(meetingSettingDTO.getMeetingName());
meetingsSetting.setMeetingPw(meetingSettingDTO.getMeetingPw());
meetingsSetting.setMeetingUrl(meetingSettingDTO.getMeetingUrl());
Set<MeetingTime> meetingTimeSet = meetingSettingDTO.getMeetingTime();
meetingsSetting.setMeetingTime(meetingTimeSet);
meetingSettingService.saveMeeting(meetingsSetting);
}