Ubuntu20.04.1 LTS在执行pip install espeakng时,报错“externally-managed-environment”
-
执行pip install espeakng
error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. If you wish to install a non-Debian packaged Python application, it may be easiest to use pipx install xyz, which will manage a virtual environment for you. Make sure you have pipx installed. See /usr/share/doc/python3.12/README.venv for more information. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification.
又试着执行sudo pip install espeakng
[sudo] lwq 的密码: error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. If you wish to install a non-Debian packaged Python application, it may be easiest to use pipx install xyz, which will manage a virtual environment for you. Make sure you have pipx installed. See /usr/share/doc/python3.12/README.venv for more information. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification.
又上网查询,使用pipx install espeakng
No apps associated with package espeakng or its dependencies. If you are attempting to install a library, pipx should not be used. Consider using pip or a similar tool instead.
**请问应该怎么解决? **
-
@2415283436
已解决python3 -m venv myenv #创建虚拟环境myenv source myenv/bin/activate #启用Python虚拟环境 which python #当前的环境在哪 deactivate #退出虚拟环境 pip --version #找出外部环境的位置 cp -r myenv/lib/python3.12/site-packages/espeakng /usr/lib/python3/dist-packages #将espeakng拷贝到外部环境中
-
在Ubuntu 20.04.1 LTS上,当你尝试使用
pip
安装espeakng
时遇到的错误提示“externally-managed-environment”是由于系统Python环境的特殊管理方式造成的。Ubuntu和一些其他Linux发行版为了维护系统Python环境的稳定性,限制了直接使用pip
在系统Python环境中安装包。针对你的问题,有几种可能的解决方案:
-
使用系统包管理器安装:
如果espeakng
有对应的Debian包,你可以使用apt
来安装。但是,根据我的知识,espeakng
可能不是Ubuntu的官方仓库中的一部分。你可以尝试搜索类似的包,如espeak
:sudo apt update sudo apt install espeak
-
使用虚拟环境:
如果你确实需要安装一个不在系统仓库中的Python包,如某个特定的espeakng
版本或者其他Python库,你应该使用虚拟环境。这样可以避免影响系统Python环境:# 安装python3-venv(如果尚未安装) sudo apt install python3-venv # 创建一个虚拟环境 python3 -m venv myenv # 激活虚拟环境 source myenv/bin/activate # 在虚拟环境中尝试安装espeakng(注意:espeakng可能不是一个pip包) pip install espeakng # 如果这不是一个有效的pip包,这一步会失败
如果
espeakng
不是一个有效的pip包,你可能需要找到其他方式安装它,比如从源代码编译。 -
使用
pipx
:
pipx
是一个用于安装和管理Python应用程序的工具,它会自动为每个应用创建一个独立的虚拟环境。但是,pipx
通常用于安装可执行的应用程序,而不是库。如果espeakng
是一个应用程序,你可以尝试安装它(但根据你提供的错误信息,这似乎不是一个选项)。 -
手动安装:
如果espeakng
是一个可以从源代码编译的程序,你可能需要下载源代码并按照其提供的说明进行编译和安装。 -
检查
espeakng
的正确性:
确认espeakng
是否是你要安装的正确包名。有时候,包名可能会有所不同,或者它可能不是一个广泛使用的Python包。
总之,根据你的需求选择合适的安装方法。如果你不确定
espeakng
是什么或如何安装,可能需要更多的信息或考虑是否有其他替代品可用。
以上为生成回答,仅供参考~
-
-
@2415283436
已解决python3 -m venv myenv #创建虚拟环境myenv source myenv/bin/activate #启用Python虚拟环境 which python #当前的环境在哪 deactivate #退出虚拟环境 pip --version #找出外部环境的位置 cp -r myenv/lib/python3.12/site-packages/espeakng /usr/lib/python3/dist-packages #将espeakng拷贝到外部环境中
-
-
@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
按照系统操作依然行不通,望回复 感谢! -
@小伊 您好,安装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
按照系统操作依然行不通,望回复 感谢! -
您好!从您提供的错误信息来看,您在尝试安装
python3-venv
时遇到了 404 Not Found 错误,这通常意味着所请求的软件包在指定的服务器上不存在。这可能是因为您的 Ubuntu 系统版本与尝试安装的软件包版本不兼容,或者软件源(repository)配置有误。以下是一些可能的解决步骤:
-
更新软件源列表:
首先,确保您的软件源列表是最新的。运行以下命令来更新您的包管理器索引:sudo apt update
-
检查 Ubuntu 版本:
确认您的 Ubuntu 版本,因为不同的版本可能支持不同的 Python 版本。您可以通过运行以下命令来查看您的 Ubuntu 版本:lsb_release -a
-
安装正确版本的 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
来创建虚拟环境。 -
手动添加或更改软件源:
如果您确实需要 Python 3.12,并且您的 Ubuntu 版本默认不支持,您可能需要手动添加一个提供 Python 3.12 的 PPA(个人软件包存档)或更改软件源。但请注意,这样做可能会引入与系统其他部分的兼容性问题。 -
使用 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
-
考虑使用 Docker 或其他容器技术:
如果您需要特定的 Python 版本,但不想更改系统级的软件源,可以考虑使用 Docker 来创建一个包含所需 Python 版本的容器。
希望这些步骤能帮助您解决问题!如果还有其他疑问,欢迎继续提问。
以上为生成回答,仅供参考~
-
-
@小伊 与ubuntu24.04适配的python版本是哪个
-
Ubuntu 24.04 LTS(长期支持版)通常会提供一个默认的Python版本,但具体是哪个版本可能会随着Ubuntu的更新和发布而有所变化。不过,根据公开发布的信息和Ubuntu的常规做法,可以归纳出以下几点:
- 默认Python版本:Ubuntu 24.04 LTS可能会默认安装Python 3的某个版本,如Python 3.8或更高版本(具体取决于Ubuntu 24.04的发布时间和后续的更新)。通常,Ubuntu会提供一个较新的、经过优化和测试的Python版本作为其默认版本。
- 多版本支持:Ubuntu允许用户安装多个Python版本,并通过工具如
update-alternatives
来切换默认版本。这意味着,即使Ubuntu 24.04默认安装了某个版本的Python,用户仍然可以手动安装其他版本并根据需要进行切换。 - 安装其他版本:如果用户需要安装特定版本的Python(例如Python 2.7,尽管它已不再受官方支持),可以通过从源代码编译安装或使用第三方存储库(如deadsnakes PPA)来实现。但请注意,由于Python 2.7已不再受官方支持,因此从安全性和维护性的角度来看,不推荐在新系统上使用它。
综上所述,与Ubuntu 24.04适配的Python版本通常是其默认的Python 3版本(如Python 3.8或更高)。但用户可以根据需要安装和切换其他版本。为了获取最准确的信息,建议查阅Ubuntu 24.04的官方文档或相关教程。
以上为生成回答,仅供参考~
-
@小伊 我尝试使用创建虚拟环境来安装,并将其拷贝到外部环境,但系统提示cp: 无法创建目录 '/usr/lib/python3/dist-packages/espeakng': 权限不够,如何解决
-
遇到权限不足的问题时,通常是因为你试图在没有足够权限的情况下写入系统目录。在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
或请求管理员权限来安装到系统目录。如果你正在开发一个软件包,考虑使用包管理工具来创建和分发你的软件。
以上为生成回答,仅供参考~
- 使用用户本地目录:Python支持在用户本地目录中安装库,这通常位于
-
此回复已被删除! -
@小伊 那么如何使用虚拟环境安装我需要的espeakng库并调用库编写代码呢
-
要在虚拟环境中安装
espeakng
库并编写代码调用它,你需要按照以下步骤操作:步骤 1:安装 Python 和虚拟环境管理工具
确保你已经安装了 Python 和
venv
(Python 的虚拟环境管理工具)。在大多数现代 Python 安装中,venv
已经包含在内。你可以通过以下命令检查是否安装了venv
:python3 -m venv --version
如果没有安装,你可能需要重新安装 Python 或手动安装
venv
。步骤 2:创建并激活虚拟环境
-
创建一个新的目录用于你的项目:
mkdir my_espeakng_project cd my_espeakng_project
-
创建一个虚拟环境:
python3 -m venv venv
-
激活虚拟环境:
-
在 Windows 上:
.\venv\Scripts\activate
-
在 macOS 和 Linux 上:
source venv/bin/activate
激活后,你应该会在命令行提示符前看到
(venv)
。 -
步骤 3:安装
espeakng
库注意:Python 的
pip
包管理器中并没有名为espeakng
的官方库。但是,有一个espeak
库可以用于调用espeak
命令行工具。而espeakng
是espeak
的一个分支,通常通过系统包管理器安装。-
如果你已经通过系统包管理器安装了
espeakng
,你可以安装一个 Python 库来调用命令行工具,比如subprocess
库(这是 Python 内置的,不需要安装)或者第三方库speak
(虽然它调用的是espeak
,但原理相同)。 -
如果你要使用
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 项目。
以上为生成回答,仅供参考~
-