当前位置: 首页 > article >正文

Linux下使用apt和pip安装软件包时它们的安装位置

使用 apt 和 pip 安装软件包时,当前命令执行的目录并不影响软件包的安装位置。

安装与当前目录的关系

 1.使用 apt 安装apt 是系统级的包管理工具,安装的应用和库与当前目录无关。

当你使用 apt 安装软件包(如 apt install <package_name>)时,软件包会安装到系统范围内的标准位置,通常包括:

  • 应用程序: /usr/bin(可执行文件)
  • 库文件: /usr/lib 或 /usr/lib/x86_64-linux-gnu/(共享库)
  • 配置文件: /etc(配置文件)

这种方式安装的应用程序可以被系统上的所有用户访问。

2.使用 pip 安装: 与 apt 类似,pip 多用于安装 Python 库和模块,默认也是全局(或用户级别)的安装。

使用 pip 安装 Python 包(如 pip install Flask)时,包的安装位置根据环境而异:

  • 全局安装(系统范围安装):

    • 在 Ubuntu 系统上,当你以 sudo 权限执行 pip install 时,Python 包通常会安装在以下位置:
      • /usr/local/lib/pythonX.Y/dist-packages(Linux系统,X.Y 是 Python 的版本号,比如 python3.8
      • /usr/lib/pythonX.Y/dist-packages
  • 用户模式安装(不需要 sudo):

    • 如果不使用 sudo 安装,pip 会将包安装到用户的本地目录,通常是:
      • ~/.local/lib/pythonX.Y/site-packages
    • 这意味着只有当前用户能访问这些包。
  • 虚拟环境

    • 如果在虚拟环境(如 venv 或 virtualenv)中使用 pip,包会被安装到该虚拟环境的 lib/pythonX.Y/site-packages 中。虚拟环境允许为不同项目隔离依赖。

小结:

  • 虚拟环境:安装到<venv>/lib/pythonX.Y/site-packages
  • 用户模式安装:安装到 ~/.local/lib/pythonX.Y/site-packages
  • 全局安装:通常安装到 /usr/local/lib/pythonX.Y/dist-packages

如何查看安装位置

如果你想查看某个 pip 包的安装位置(取决于环境),可以运行以下命令:

pip show Flask

这将给出 Flask 包的详细信息,包括它的安装路径。例如,输出中会包含以下内容:

Name: Flask
Version: x.x.x
Summary: A simple framework for building complex web applications.
Home-page: https://palletsprojects.com/p/flask/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
License: BSD-3-Clause
Location: /usr/local/lib/python3.X/dist-packages
Requires: Werkzeug, Jinja2, itsdangerous, click
Required-by:

总结

  • 当前目录并不影响 apt 和 pip 安装的内容,安装的软件包都是根据系统或用户的配置放到特定的目录中。
  • 你可以在任何目录中运行 apt 或 pip 命令,软件包的安装位置不会受到你执行命令时所在目录的影响。
  • apt:全局系统安装,应用存放在 /usr/bin/etc/usr/lib 等目录。
  • pip:Python 包安装位置取决于是否使用 sudo、是否是在虚拟环境中等,常见路径包括 /usr/local/lib/pythonX.Y/dist-packages 和 ~/.local/lib/pythonX.Y/site-packages

 


http://www.kler.cn/news/337781.html

相关文章:

  • Java Web开发简介
  • MySQL多表查询:列子查询
  • Crypto虐狗记---”你“和小鱼(四)
  • 引领未来科技,精准链接IT精英 —— “万码优才“,IT技术人才找工作神器。
  • MySQL从0到1基础语法笔记(上)
  • eNodeB User Manual - Troubleshooting
  • 用 Delphi 做了一个简单的 CMS
  • Django 框架的知识点目录
  • TODO 提交PR修订 小林coding笔记中对TLS握手过程的阐释
  • 单例模式:Python中的“独一无二”模式
  • 掌握精准客流监测数据,及时传达应急事件信息的智慧园区开源了
  • 代码随想录 101. 孤岛的总面积
  • ✨机器学习笔记(六)—— ReLU、多分类问题、Softmax、Adam、反向传播
  • 基于springboot的数据库原理教学案例案例库管理系统
  • LeetCode 0983.最低票价:记忆化搜索
  • 软件设计师——信息安全
  • linux桌面软件(wps)内嵌到主窗口后的关闭问题
  • SQL A数据库导入B数据库
  • SpringBoot Jar 包加密防止反编译
  • GEE 错误:上传的CSV文件出现无法正常进行值提取提示Can‘t transform (11121.0,18905.0)