conda环境下报error: Microsoft Visual C++ 14.0 or greater is required问题解决

1 使用pip安装eunjeon模块报错

 pip install eunjeon

报错如下:

Looking in indexes: https://mirrors.aliyun.com/pypi/simple
Collecting eunjeon
  Using cached https://mirrors.aliyun.com/pypi/packages/68/90/3232725f974abf6d38f1e2cfd7a6b958337133b3fdc5b3e8994e03d7c2d3/eunjeon-0.4.0.tar.gz (34.7 MB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: eunjeon
  Building wheel for eunjeon (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [44 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-39
      creating build\lib.win-amd64-cpython-39\eunjeon
      copying eunjeon\constants.py -> build\lib.win-amd64-cpython-39\eunjeon
      copying eunjeon\mecab.py -> build\lib.win-amd64-cpython-39\eunjeon
      copying eunjeon\_mecab.py -> build\lib.win-amd64-cpython-39\eunjeon
      copying eunjeon\__init__.py -> build\lib.win-amd64-cpython-39\eunjeon
      creating build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\char.bin -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\matrix.bin -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\model.bin -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\char.def -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\feature.def -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\left-id.def -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\pos-id.def -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\rewrite.def -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\right-id.def -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\unk.def -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\sys.dic -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\unk.dic -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\dicrc -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\mecabrc -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\libmecab.dll -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\mecab-cost-train.exe -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\mecab-dict-gen.exe -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\mecab-dict-index.exe -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\mecab-system-eval.exe -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\mecab-test-gen.exe -> build\lib.win-amd64-cpython-39\eunjeon\data
      copying eunjeon\data\mecab.exe -> build\lib.win-amd64-cpython-39\eunjeon\data
      creating build\lib.win-amd64-cpython-39\eunjeon\data\sdk
      copying eunjeon\data\sdk\libmecab.lib -> build\lib.win-amd64-cpython-39\eunjeon\data\sdk
      copying eunjeon\data\sdk\mecab-cost-train.lib -> build\lib.win-amd64-cpython-39\eunjeon\data\sdk
      copying eunjeon\data\sdk\mecab-dict-gen.lib -> build\lib.win-amd64-cpython-39\eunjeon\data\sdk
      copying eunjeon\data\sdk\mecab-dict-index.lib -> build\lib.win-amd64-cpython-39\eunjeon\data\sdk
      copying eunjeon\data\sdk\mecab-system-eval.lib -> build\lib.win-amd64-cpython-39\eunjeon\data\sdk
      copying eunjeon\data\sdk\mecab-test-gen.lib -> build\lib.win-amd64-cpython-39\eunjeon\data\sdk
      copying eunjeon\data\sdk\mecab.h -> build\lib.win-amd64-cpython-39\eunjeon\data\sdk
      copying eunjeon\data\sdk\mecab.lib -> build\lib.win-amd64-cpython-39\eunjeon\data\sdk
      running build_ext
      building '_MeCab' extension
      error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for eunjeon
  Running setup.py clean for eunjeon
Failed to build eunjeon
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (eunjeon)

2 问题分析

从错误提示可知,需要升级Microsoft Visual C++

3 问题解决

3.1 下载工具

vs_BuildTools.exe

3.2 执行安装

step 1 打开 Visual Studio Installer

step 2 然后安装“使用C++的桌面开发”并确保安装详细信息的前两项勾选

step 3 安装完成

再次运行pip安装,执行成功:

(D:\.conda\openvoice) PS D:\git\OpenVoice> pip install eunjeon
Looking in indexes: https://mirrors.aliyun.com/pypi/simple
Collecting eunjeon
  Using cached https://mirrors.aliyun.com/pypi/packages/68/90/3232725f974abf6d38f1e2cfd7a6b958337133b3fdc5b3e8994e03d7c2d3/eunjeon-0.4.0.tar.gz (34.7 MB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: eunjeon
  Building wheel for eunjeon (setup.py) ... done
  Created wheel for eunjeon: filename=eunjeon-0.4.0-cp39-cp39-win_amd64.whl size=35016338 sha256=5348d5cf579636eef2a27c34c8249c652b1f736d3220fef42229fb666fb3ecb1
  Stored in directory: c:\users\admin\appdata\local\pip\cache\wheels\1b\03\09\b39fd79b75ed18b23540b3f3ec1f761e7be6195bcaa2b24bfa
Successfully built eunjeon
Installing collected packages: eunjeon
Successfully installed eunjeon-0.4.0

  4 conda环境介绍

Conda是一个开源的包管理器和环境管理系统,用于安装、运行和更新包和其依赖项。它是由Anaconda, Inc.(以前称为Continuum Analytics)创建,用于支持Python程序开发,但它也可以用来管理来自其他语言的包。Conda使得包管理和环境隔离变得简单,对于处理多个项目中的依赖关系和版本控制尤其有用。

7fe216bee95143b88dd373480ba452ee.webp

Conda是一个强大的工具,对于管理复杂的Python项目和环境至关重要。它简化了包管理和环境设置,使得Python开发更加容易和高效。通过使用Conda,开发者可以确保他们的项目在不同机器和操作系统上都能以相同的方式运行,大大提高了项目的可移植性和可复现性。

4.1 Conda的核心概念

  • 包管理:Conda作为包管理器,能够安装、更新和卸载软件包。这些包可能包含Python或其他编程语言的库和应用程序。Conda通过包含所有依赖性的方式来解决包之间的依赖关系问题。

  • 环境管理:Conda允许用户创建隔离的环境,以便在不同的项目之间切换,而不会导致依赖项或版本的冲突。每个环境都有自己的一套独立的安装的软件包。

  • 跨平台:Conda是跨平台的,可以在Windows、macOS和Linux操作系统上运行。这使得在不同操作系统上保持一致的开发和部署环境成为可能。

  • 语言无关性:虽然Conda最初是为Python生态系统设计的,但它实际上是语言无关的,可以管理多种编程语言的软件包。

  • 通道(Channels):Conda软件包可以从所谓的“通道”中获得。这些通道是包存储库,可以是公共的或私有的。Anaconda Cloud提供了许多预建的包,而用户也可以创建自己的通道来托管和分享包。

  • 依赖和兼容性管理:Conda在安装软件包时会自动处理依赖关系和版本控制,确保所有依赖项都兼容,并且不会发生冲突。

4.2 使用Conda的优势

  • 解决依赖性问题:Conda可以自动解决包之间的依赖关系,简化了安装过程。

  • 环境隔离:创建独立的环境可以避免包之间的版本冲突,使得项目更稳定。

  • 易于使用:Conda的命令行界面简单直观,易于学习和使用。

  • 广泛的包支持:Conda支持Python的许多流行库和应用程序。

  • 社区支持:作为一个流行的工具,Conda拥有一个活跃的社区,用户可以从中找到支持和资源。

4.3 Conda环境的创建和管理

  • 创建新环境:使用conda create命令创建一个新环境,可以指定Python版本和所需的包。

  • 激活环境:使用conda activate命令来激活环境。

  • 安装包:在激活的环境中使用conda install命令来安装新的包。

  • 环境列表:使用conda env list来查看所有可用的Conda环境。

  • 移除环境:使用conda env remove命令来移除不再需要的环境。

4.4 应用场景

Conda作为一个强大的包和环境管理工具,广泛应用于需要精确控制依赖和环境的各种软件开发和科学计算领域,主要包括:

  • 数据科学和机器学习项目:由于Conda可以轻松安装和管理各种数据科学和机器学习的库(如NumPy, Pandas, Scikit-learn, TensorFlow, PyTorch等),它成为了这些领域专家的首选工具。

  • 多语言项目:对于涉及Python、R、Ruby、Lua、Scala等多种编程语言的项目,Conda能够有效管理不同语言的依赖和环境,使项目维护变得更加简单。

  • 环境隔离:在需要为不同项目创建隔离的运行环境时,Conda可以创建独立的环境,每个环境具有不同的库和版本,这有助于防止依赖冲突。

  • 跨平台开发:由于Conda支持Windows、macOS和Linux,它允许开发者在不同的操作系统上以一致的方式设置和维护他们的开发环境。

  • 科学研究:在科学研究中,需要使用特定版本的软件和库来重现实验结果。Conda可以确保这些环境的一致性和可复制性。

  • 软件开发:对于需要确保应用程序在特定版本的库上正常运行的开发场景,Conda可以帮助管理和锁定这些依赖。

  • 教育和培训:在教育场景中,Conda可以帮助创建统一的学习环境,确保所有学生都在相同的软件设置下学习。

  • 持续集成/持续部署(CI/CD):在自动化构建和部署流程中,Conda可以用于创建和管理构建环境,确保软件在不同环境中的一致性和可靠性。

4.5 常用命令

Conda 是一个开源的包管理器和环境管理器,广泛用于管理Python环境和包。以下是一些常用的 Conda 命令:

  • 安装 Conda 包:

    • conda install [package-name]: 安装指定的包。
  • 创建和管理环境:

    • conda create --name [env-name]: 创建一个新的环境。
    • conda activate [env-name]: 激活指定环境。
    • conda deactivate: 退出当前环境。
    • conda env list: 列出所有可用的环境。
  • 管理包:

    • conda list: 在当前环境中列出所有已安装的包。
    • conda update [package-name]: 更新指定的包。
    • conda remove [package-name]: 移除指定的包。
  • 搜索包:

    • conda search [package-name]: 搜索可用的包版本。
  • 环境导出和导入:

    • conda env export > environment.yml: 导出当前环境的配置到一个YAML文件。
    • conda env create -f environment.yml: 使用YAML文件创建一个新环境。
  • 更新 Conda:

    • conda update conda: 更新 Conda 到最新版本。
  • 查看 Conda 信息:

    • conda info: 显示关于 Conda 的信息。
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧医疗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值