如何升级disutils包PyYAML?

时间:2018-04-19 01:59:20

标签: pip pyyaml

我正在尝试安装 chatterbot ,它依赖于 PyYAML = 3.12 。在我的Ubuntu机器上安装 PyYAML 版本是3.11。所以我使用以下命令升级 PyYAML

sudo -H pip3 install --upgrade PyYAML

但它会出现以下错误:

  

无法卸载PyYAML'。这是一个distutils安装项目和   因此我们无法准确地确定哪些文件属于哪个文件   只会导致部分卸载。

我的 pip3 版本是10.0.0。

如何解决这个问题?

8 个答案:

答案 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)

删除Dist程序包并运行

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

删除conda需要时间

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);

    }