鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    Ubuntu20.04.1 LTS在执行pip install espeakng时,报错“externally-managed-environment”

    已定时 已固定 已锁定 已移动 已解决
    综合问题
    python3 pip3 教程
    3
    13
    1.2k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • S
      suuunnnn @2415283436
      最后由 编辑

      @2415283436 您好,安装python3-venv出现如下情况:
      sun@sun-VMware-Virtual-Platform:~/chapt3$ sudo apt install python3-venv
      正在读取软件包列表... 完成
      正在分析软件包的依赖关系树... 完成
      正在读取状态信息... 完成
      将会同时安装下列软件:
      python3-pip-whl python3-setuptools-whl python3.12-venv
      下列【新】软件包将被安装:
      python3-pip-whl python3-setuptools-whl python3-venv python3.12-venv
      升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 122 个软件包未被升级。
      需要下载 5,678 B/2,425 kB 的归档。
      解压缩后会消耗 2,777 kB 的额外空间。
      您希望继续执行吗? [Y/n] Y
      忽略:1 http://mirrors.ustc.edu.cn/ubuntu noble-updates/universe amd64 python3.12-venv amd64 3.12.3-1ubuntu0.3
      错误:1 http://mirrors.ustc.edu.cn/ubuntu noble-updates/universe amd64 python3.12-venv amd64 3.12.3-1ubuntu0.3
      404 Not Found [IP: 202.38.95.110 80]
      E: 无法下载 http://mirrors.ustc.edu.cn/ubuntu/pool/universe/p/python3.12/python3.12-venv_3.12.3-1ubuntu0.3_amd64.deb 404 Not Found [IP: 202.38.95.110 80]
      E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?
      sun@sun-VMware-Virtual-Platform:~/chapt3$ python3 -m venv myenv
      The virtual environment was not created successfully because ensurepip is not
      available. On Debian/Ubuntu systems, you need to install the python3-venv
      package using the following command.

      apt install python3.12-venv
      

      You may need to use sudo with that command. After installing the python3-venv
      package, recreate your virtual environment.

      Failing command: /home/sun/chapt3/myenv/bin/python3
      按照系统操作依然行不通,望回复 感谢!

      1 条回复 最后回复 回复 引用 0
      • S
        suuunnnn @小伊
        最后由 编辑

        @小伊 您好,安装python3-venv出现如下情况:
        sun@sun-VMware-Virtual-Platform:~/chapt3$ sudo apt install python3-venv
        正在读取软件包列表... 完成
        正在分析软件包的依赖关系树... 完成
        正在读取状态信息... 完成
        将会同时安装下列软件:
        python3-pip-whl python3-setuptools-whl python3.12-venv
        下列【新】软件包将被安装:
        python3-pip-whl python3-setuptools-whl python3-venv python3.12-venv
        升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 122 个软件包未被升级。
        需要下载 5,678 B/2,425 kB 的归档。
        解压缩后会消耗 2,777 kB 的额外空间。
        您希望继续执行吗? [Y/n] Y
        忽略:1 http://mirrors.ustc.edu.cn/ubuntu noble-updates/universe amd64 python3.12-venv amd64 3.12.3-1ubuntu0.3
        错误:1 http://mirrors.ustc.edu.cn/ubuntu noble-updates/universe amd64 python3.12-venv amd64 3.12.3-1ubuntu0.3
        404 Not Found [IP: 202.38.95.110 80]
        E: 无法下载 http://mirrors.ustc.edu.cn/ubuntu/pool/universe/p/python3.12/python3.12-venv_3.12.3-1ubuntu0.3_amd64.deb 404 Not Found [IP: 202.38.95.110 80]
        E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?
        sun@sun-VMware-Virtual-Platform:~/chapt3$ python3 -m venv myenv
        The virtual environment was not created successfully because ensurepip is not
        available. On Debian/Ubuntu systems, you need to install the python3-venv
        package using the following command.

        apt install python3.12-venv

        You may need to use sudo with that command. After installing the python3-venv
        package, recreate your virtual environment.

        Failing command: /home/sun/chapt3/myenv/bin/python3
        按照系统操作依然行不通,望回复 感谢!

        1 条回复 最后回复 回复 引用 0
        • 小伊小
          机器人小伊
          最后由 编辑

          您好!从您提供的错误信息来看,您在尝试安装 python3-venv 时遇到了 404 Not Found 错误,这通常意味着所请求的软件包在指定的服务器上不存在。这可能是因为您的 Ubuntu 系统版本与尝试安装的软件包版本不兼容,或者软件源(repository)配置有误。

          以下是一些可能的解决步骤:

          1. 更新软件源列表:
            首先,确保您的软件源列表是最新的。运行以下命令来更新您的包管理器索引:

            sudo apt update
            
          2. 检查 Ubuntu 版本:
            确认您的 Ubuntu 版本,因为不同的版本可能支持不同的 Python 版本。您可以通过运行以下命令来查看您的 Ubuntu 版本:

            lsb_release -a
            
          3. 安装正确版本的 Python 和 venv:
            根据您的系统版本,您可能需要安装与您的系统兼容的 Python 和 venv 版本。例如,如果您的系统是 Ubuntu 20.04,它默认可能不直接支持 Python 3.12。您可以尝试安装系统默认支持的 Python 版本(如 Python 3.8)的 venv:

            sudo apt install python3.8-venv
            

            然后,使用 python3.8 -m venv myenv 来创建虚拟环境。

          4. 手动添加或更改软件源:
            如果您确实需要 Python 3.12,并且您的 Ubuntu 版本默认不支持,您可能需要手动添加一个提供 Python 3.12 的 PPA(个人软件包存档)或更改软件源。但请注意,这样做可能会引入与系统其他部分的兼容性问题。

          5. 使用 deadsnakes PPA:
            Deadsnakes PPA 提供了多个 Python 版本,您可以通过添加这个 PPA 来安装 Python 3.12:

            sudo add-apt-repository ppa:deadsnakes/ppa
            sudo apt update
            sudo apt install python3.12 python3.12-venv
            
          6. 考虑使用 Docker 或其他容器技术:
            如果您需要特定的 Python 版本,但不想更改系统级的软件源,可以考虑使用 Docker 来创建一个包含所需 Python 版本的容器。

          希望这些步骤能帮助您解决问题!如果还有其他疑问,欢迎继续提问。


          以上为生成回答,仅供参考~

          我是小伊,已接入ChatGpt,所有回复,仅供参考~

          S 1 条回复 最后回复 回复 引用 0
          • S
            suuunnnn @小伊
            最后由 编辑

            @小伊 与ubuntu24.04适配的python版本是哪个

            1 条回复 最后回复 回复 引用 0
            • 小伊小
              机器人小伊
              最后由 编辑

              Ubuntu 24.04 LTS(长期支持版)通常会提供一个默认的Python版本,但具体是哪个版本可能会随着Ubuntu的更新和发布而有所变化。不过,根据公开发布的信息和Ubuntu的常规做法,可以归纳出以下几点:

              1. 默认Python版本:Ubuntu 24.04 LTS可能会默认安装Python 3的某个版本,如Python 3.8或更高版本(具体取决于Ubuntu 24.04的发布时间和后续的更新)。通常,Ubuntu会提供一个较新的、经过优化和测试的Python版本作为其默认版本。
              2. 多版本支持:Ubuntu允许用户安装多个Python版本,并通过工具如update-alternatives来切换默认版本。这意味着,即使Ubuntu 24.04默认安装了某个版本的Python,用户仍然可以手动安装其他版本并根据需要进行切换。
              3. 安装其他版本:如果用户需要安装特定版本的Python(例如Python 2.7,尽管它已不再受官方支持),可以通过从源代码编译安装或使用第三方存储库(如deadsnakes PPA)来实现。但请注意,由于Python 2.7已不再受官方支持,因此从安全性和维护性的角度来看,不推荐在新系统上使用它。

              综上所述,与Ubuntu 24.04适配的Python版本通常是其默认的Python 3版本(如Python 3.8或更高)。但用户可以根据需要安装和切换其他版本。为了获取最准确的信息,建议查阅Ubuntu 24.04的官方文档或相关教程。


              以上为生成回答,仅供参考~

              我是小伊,已接入ChatGpt,所有回复,仅供参考~

              1 条回复 最后回复 回复 引用 0
              • S
                suuunnnn @小伊
                最后由 编辑

                @小伊 我尝试使用创建虚拟环境来安装,并将其拷贝到外部环境,但系统提示cp: 无法创建目录 '/usr/lib/python3/dist-packages/espeakng': 权限不够,如何解决

                1 条回复 最后回复 回复 引用 0
                • 小伊小
                  机器人小伊
                  最后由 编辑

                  遇到权限不足的问题时,通常是因为你试图在没有足够权限的情况下写入系统目录。在Linux系统中,/usr/lib/python3/dist-packages/ 通常是由系统管理员管理的目录,普通用户没有权限直接写入。

                  针对你的问题,有几种可能的解决方案:

                  1. 使用sudo命令

                  如果你确定需要安装到系统级别的Python包目录中,并且你有管理员权限,可以使用sudo来运行你的cp命令。例如:

                  sudo cp -r /path/to/your/virtualenv/lib/python3.x/site-packages/espeakng /usr/lib/python3/dist-packages/
                  

                  注意替换/path/to/your/virtualenv/为你的虚拟环境实际路径,以及确保python3.x与你的Python版本相匹配。

                  2. 修改安装位置

                  通常不推荐将库安装到系统级目录,除非你确实需要这样做。一个更好的做法是将库安装到一个用户可写的目录,或者直接使用虚拟环境。

                  • 使用用户本地目录:Python支持在用户本地目录中安装库,这通常位于~/.local/。你可以通过pip install --user来安装到这些目录。
                  • 继续使用虚拟环境:虚拟环境最大的好处之一就是隔离了不同项目的依赖。你可以直接激活虚拟环境来使用安装的库,而不需要复制到系统目录。

                  3. 使用checkinstall或fpm等工具创建包

                  如果你需要为系统创建安装包,可以考虑使用checkinstall或fpm等工具,这些工具可以帮助你将软件打包成Debian包或其他格式,然后你可以通过系统的包管理器来安装。

                  4. 检查和修改目录权限(不推荐)

                  虽然理论上你可以修改/usr/lib/python3/dist-packages/的权限来允许写入,但这通常不是一个好主意,因为这可能会破坏系统的安全性和稳定性。

                  结论

                  通常,最简单和最安全的方法是继续使用虚拟环境,或者如果你确实需要全局安装,使用pip install --user或请求管理员权限来安装到系统目录。如果你正在开发一个软件包,考虑使用包管理工具来创建和分发你的软件。


                  以上为生成回答,仅供参考~

                  我是小伊,已接入ChatGpt,所有回复,仅供参考~

                  S 1 条回复 最后回复 回复 引用 0
                  • S
                    suuunnnn
                    最后由 编辑

                    此回复已被删除!
                    1 条回复 最后回复 回复 引用 0
                    • S
                      suuunnnn @小伊
                      最后由 编辑

                      @小伊 那么如何使用虚拟环境安装我需要的espeakng库并调用库编写代码呢

                      1 条回复 最后回复 回复 引用 0
                      • 小伊小
                        机器人小伊
                        最后由 编辑

                        要在虚拟环境中安装 espeakng 库并编写代码调用它,你需要按照以下步骤操作:

                        步骤 1:安装 Python 和虚拟环境管理工具

                        确保你已经安装了 Python 和 venv(Python 的虚拟环境管理工具)。在大多数现代 Python 安装中,venv 已经包含在内。你可以通过以下命令检查是否安装了 venv:

                        python3 -m venv --version
                        

                        如果没有安装,你可能需要重新安装 Python 或手动安装 venv。

                        步骤 2:创建并激活虚拟环境

                        1. 创建一个新的目录用于你的项目:

                          mkdir my_espeakng_project
                          cd my_espeakng_project
                          
                        2. 创建一个虚拟环境:

                          python3 -m venv venv
                          
                        3. 激活虚拟环境:

                          • 在 Windows 上:

                            .\venv\Scripts\activate
                            
                          • 在 macOS 和 Linux 上:

                            source venv/bin/activate
                            

                          激活后,你应该会在命令行提示符前看到 (venv)。

                        步骤 3:安装 espeakng 库

                        注意:Python 的 pip 包管理器中并没有名为 espeakng 的官方库。但是,有一个 espeak 库可以用于调用 espeak 命令行工具。而 espeakng 是 espeak 的一个分支,通常通过系统包管理器安装。

                        1. 如果你已经通过系统包管理器安装了 espeakng,你可以安装一个 Python 库来调用命令行工具,比如 subprocess 库(这是 Python 内置的,不需要安装)或者第三方库 speak(虽然它调用的是 espeak,但原理相同)。

                        2. 如果你要使用 subprocess 库,不需要额外安装任何东西。但如果你想使用第三方库,比如 pyttsx3,你可以安装它:

                          pip install pyttsx3
                          

                          请注意,pyttsx3 也不直接调用 espeakng,但它提供了一个文本到语音的接口,你可以配置它来使用 espeak 或 espeakng(如果系统路径中可用)。

                        步骤 4:编写代码调用 espeakng

                        由于 espeakng 通常作为命令行工具安装,你可以使用 Python 的 subprocess 库来调用它。以下是一个示例代码:

                        import subprocess
                        
                        def speak_text(text):
                            # 使用 subprocess 调用 espeakng 命令
                            result = subprocess.run(['espeakng', text], capture_output=True, text=True)
                            print(result.stderr)  # 打印任何错误信息
                        
                        if __name__ == "__main__":
                            text_to_speak = "Hello, this is a test with espeakng!"
                            speak_text(text_to_speak)
                        

                        步骤 5:运行代码

                        确保你的系统路径中已经包含了 espeakng 命令。然后运行你的 Python 脚本:

                        python your_script_name.py
                        

                        如果 espeakng 已正确安装并在系统路径中可用,你应该能听到文本被朗读出来。

                        总结

                        虽然 Python 的 pip 包管理器中没有直接的 espeakng 库,但你可以通过系统包管理器安装 espeakng,并使用 Python 的 subprocess 库或其他文本到语音库(如 pyttsx3)来调用它。以上步骤应该能帮助你在虚拟环境中设置并运行一个调用 espeakng 的 Python 项目。


                        以上为生成回答,仅供参考~

                        我是小伊,已接入ChatGpt,所有回复,仅供参考~

                        1 条回复 最后回复 回复 引用 0
                        • 第一个帖子
                          最后一个帖子
                        皖ICP备16016415号-7
                        Powered by NodeBB | 鱼香ROS