You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

升级Ubuntu 22.04至23.10后pip安装软件包需添加--break-system-packages的问题咨询

升级Ubuntu 22.04至23.10后pip安装软件包需添加--break-system-packages的问题咨询

嗨,这确实是升级后正常的现象哦!Ubuntu从23.04版本开始就遵循了PEP 668规范,把系统级的Python环境标记为“外部管理”状态,这么做主要是为了避免pip安装的包和apt维护的系统包产生依赖冲突,防止系统工具因为依赖混乱出现故障。

针对你需要用pip安装特定版本包做开发的需求,给你几个可行的解决方向:

  • 使用虚拟环境(首推方案):这是最安全且符合开发规范的方式,能完全隔离你的项目依赖和系统环境。

    1. 先创建一个虚拟环境:python -m venv my_dev_envmy_dev_env可以换成你喜欢的环境名称)
    2. 激活虚拟环境:source my_dev_env/bin/activate
    3. 激活后直接执行pip install foobar就能安装你需要的特定版本包,全程不会触发那个警告,所有依赖都只存在于这个独立环境中,后续换项目还能新建不同的虚拟环境,灵活度拉满。
  • 永久禁用警告(谨慎使用):如果你确实需要在系统环境中安装包,可以通过配置文件跳过这个提示。

    1. 创建或修改用户目录下的pip配置文件:~/.config/pip/pip.conf
    2. 在文件中添加以下内容:
      [global]
      break-system-packages = true
      
      之后再执行pip install就不用每次手动加--break-system-packages参数了,但要注意这种方式可能会破坏系统包的依赖结构,导致部分系统Python工具无法正常运行,非必要不建议这么做。
  • 用pipx安装命令行工具:如果要安装的是类似命令行工具类的Python包,pipx是个很好的选择。它会把每个包安装在单独的隔离环境里,同时将可执行文件映射到系统路径,既不会干扰系统环境,又能正常使用工具。执行pipx install foobar即可完成安装。

备注:内容来源于stack exchange,提问作者Étienne

火山引擎 最新活动