macos python环境安装

安装的问题

mac 安装 python

brew install python

通过brew安装的python安装路径

打开终端,输入brew search python:

为啥会被安装在这里

  • Frameworks 的用途

  • /Library/Frameworks 是 macOS 系统中专门用于存放框架的目录。框架是一种结构化的目录,包含了动态库、头文件、资源文件等。

  • Python 官方的安装包会将 Python 作为一个框架安装,以便开发者在使用 macOS 时能够轻松地集成和管理 Python。

  • 版本管理

  • 官方安装包会将不同的 Python 版本安装到 Versions 子目录下,例如:

    /Library/Frameworks/Python.framework/Versions/3.12/

  • 这使得你可以并存多个 Python 版本,并通过软链接管理当前默认使用的版本:

    /Library/Frameworks/Python.framework/Versions/Current -> 3.12

R也安装在这里

包管理的问题

解释 python3 -m site****的输出

运行 python3 -m site 命令后,Python 显示了与当前环境相关的一些路径和配置。以下是输出内容逐项的解释:


1. sys.path

sys.path 是 Python 的模块搜索路径列表,它定义了 Python 在加载模块时搜索的目录顺序。列表中的路径按顺序搜索,直到找到匹配的模块。

你的 sys.path 输出如下:

python


Copy code
sys.path = [
    '/Library/Frameworks',
    '/Library/Frameworks/Python.framework/Versions/3.12/lib/python312.zip',
    '/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12',
    '/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/lib-dynload',
    '/Users/ljfu/Library/Python/3.12/lib/python/site-packages',
    '/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages',
]
每个路径的作用
  1. /Library/Frameworks
    • 一般不是 Python 模块的常规路径,可能是误加的路径。模块搜索不会特别依赖于它。
  1. /Library/Frameworks/Python.framework/Versions/3.12/lib/python312.zip
    • 如果 Python 的标准库被打包成 .zip 文件存储(为了节省磁盘空间或加快加载速度),它会被放在这里。
  1. /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12
    • Python 的标准库路径,存放 Python 的核心模块(如 ossysmath 等)。
  1. /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/lib-dynload
    • 存放动态加载模块(通常是用 C/C++ 编写的扩展模块,比如 _ctypes.cpython-312-darwin.so)。
  1. /Users/ljfu/Library/Python/3.12/lib/python/site-packages
    • 当前用户的 site-packages 目录,供用户安装的第三方模块使用。它只对当前用户可见。
  1. /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages
    • 全局 site-packages 目录,存放为所有用户安装的第三方模块。

2. USER_BASE

USER_BASE: '/Users/ljfu/Library/Python/3.12' (exists)
  • USER_BASE 是 Python 用户目录的基础路径,当前用户的所有 Python 配置和安装文件存储在这里。

  • 默认值是:

    ~/Library/Python/<python_version>


3. USER_SITE

USER_SITE: '/Users/ljfu/Library/Python/3.12/lib/python/site-packages' (exists)
  • USER_SITEUSER_BASE 下专门存放当前用户安装的第三方模块的路径。
  • 使用 pip install --user 安装的模块会被放在这里。

4. ENABLE_USER_SITE

python


Copy code
ENABLE_USER_SITE: True
  • ENABLE_USER_SITE 决定是否启用 USER_SITE 目录。
  • True 时,Python 会在模块搜索路径中包含用户目录的路径(如 /Users/ljfu/Library/Python/3.12/lib/python/site-packages)。
  • 如果设置为 False,即使用户安装了模块,Python 也不会在用户目录中查找模块。

总结

从这个输出可以看出:

  1. Python 的核心模块动态加载模块 都位于官方安装路径下:

    bash

    Copy code
    /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12

  2. 第三方模块 的存储分为两类:

    • 全局安装/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages
    • 用户安装/Users/ljfu/Library/Python/3.12/lib/python/site-packages
  1. 模块加载优先级
    • Python 按照 sys.path 中的顺序查找模块。如果同名模块出现在多个路径中,先找到的会被加载。
  1. 用户可配置性
    • 你可以通过修改 sys.path 或配置环境变量(如 PYTHONPATH)来调整模块的搜索路径。

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。

pip --version     # Python2.x 版本命令
pip3 --version    # Python3.x 版本命令

pip 最常用命令

显示版本和路径

pip --version

获取帮助

pip --help

升级 pip

pip install -U pip

如果这个升级命令出现问题 ,可以使用以下命令:

sudo easy_install --upgrade pip

安装包

pip install SomePackage              # 最新版本
pip install SomePackage==1.0.4       # 指定版本
pip install 'SomePackage>=1.0.4'     # 最小版本

比如我要安装 Django。用以下的一条命令就可以,方便快捷。

pip install Django==1.7

升级包

pip install --upgrade SomePackage

升级指定的包,通过使用==, >=, <=, >, < 来指定一个版本号。

卸载包

pip uninstall SomePackage

搜索包

pip search SomePackage

显示安装包信息

pip show

查看指定包的详细信息

pip show -f SomePackage

列出已安装的包

pip list

查看可升级的包

pip list -o

pip 升级

Linux 或 macOS

pip install --upgrade pip    # python2.x
pip3 install --upgrade pip   # python3.x

Windows 平台升级:

python -m pip install -U pip   # python2.x
python -m pip3 install -U pip    # python3.x

pip 清华大学开源软件镜像站

使用国内镜像速度会快很多:

临时使用:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

例如,安装 Django:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Django

如果要设为默认需要升级 pip 到最新的版本 (>=10.0.0) 后进行配置:

pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U

pip install安装路径介绍

pip是Python语言中的一个包管理工具,通过pip我们可以安装、升级、卸载Python包。在这个过程中,pip默认会将Python包安装到系统的全局路径下,但是很多时候我们需要将Python包安装到指定的路径下,这里就介绍一下pip install安装路径的相关内容。

一、指定安装路径

默认情况下,pip会将Python包安装到系统的全局路径下,比如在Linux系统下是/usr/local/lib/python3.8/site-packages/。但是我们可以通过在pip install命令后面添加--target参数指定安装路径。例如,我们要将numpy包安装到当前用户目录下的mylibs目录下,可以使用以下命令:

pip install numpy --target ~/mylibs

这样,numpy包就会被安装到~/mylibs目录下。

二、加入环境变量

在默认情况下,安装到全局路径下的Python包是可以被所有用户访问到的。但是如果我们使用--target参数指定了安装路径,那么其他用户就无法直接访问到这些Python包了。

为了让其他用户也可以使用我们安装的Python包,一般有两种解决办法:

1. 将安装路径加入到 PYTHONPATH****环境变量中
export PYTHONPATH=$PYTHONPATH:~/mylibs

执行该命令后,~/mylibs就会被添加到系统的PYTHONPATH环境变量中,其他用户就可以直接使用我们安装的Python包了。

2. 在 sys.path****中添加安装路径

在Python代码中可以使用以下命令将安装路径添加到sys.path中:

import sys



sys.path.append('~/mylibs')

这样其他用户也可以使用我们安装的Python包了。

三、指定包名称和版本号

在使用pip install命令安装Python包时,可以指定要安装的包名称和版本号。可以使用==!=><>=<=这些符号来指定版本号。

例如,我们想安装numpy包的1.19.3版本,可以使用以下命令:

pip install numpy==1.19.3

如果我们想安装除了1.19.3版本以外的numpy包,可以使用以下命令:

pip install numpy!=1.19.3
四、使用requirements.txt文件

在实际项目中,我们通常会使用requirements.txt文件记录项目依赖的Python包以及对应的版本号。可以使用以下命令将requirements.txt文件中的Python包安装到指定的安装路径下:

pip install -r requirements.txt --target ~/mylibs

这样,requirements.txt文件中记录的Python包就会被安装到~/mylibs目录下。

五、总结

通过以上内容,我们了解了如何指定pip install安装路径、如何将安装路径加入到环境变量中、如何指定包名称和版本号以及如何使用requirements.txt文件来安装Python包。这些内容对于项目模块化开发非常重要。

Python 自带的包(模块)是 Python 标准库的一部分,通常包含了许多基础模块,比如 sysosmathdatetime 等。它们会随 Python 的安装一起安装,存放在一个固定的位置。

python3 -c "import sys; print(sys.prefix)"

2. 如何查看标准库的位置

在任何平台上,你可以使用 sys 模块来查看标准库的安装路径。运行以下代码:

python


Copy code
import sys
print(sys.prefix)  # Python 安装目录
print(sys.exec_prefix)  # 与 sys.prefix 相同,表示 Python 解释器的位置

在标准的 Python 安装中,标准库位于 sys.prefix/lib/pythonX.Y 目录下。

此外,你还可以通过 sys.path 查看所有 Python 搜索模块的路径,包括标准库的路径。

python


Copy code
import sys
print(sys.path)

其中会包含指向标准库目录的路径。


3. 自带包存放位置示例

假设你安装了 Python 3.12,那么:

  • macOS / Linux

    bash

    Copy code
    /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/

  • Windows

    bash

    Copy code
    C:\Users<Username>\AppData\Local\Programs\Python\Python312\Lib\

在该目录下,你将看到像 os.pysys.pymath.py 等 Python 标准库模块。这些模块是由 Python 官方维护和提供的,安装时会自动包含在内。


4. 查看模块安装位置

如果你想查看某个标准库模块(如 sys)的安装位置,可以使用模块的 __file__ 属性。不过,对于一些内建模块(如 sysmath),它们没有 __file__ 属性,因为它们是在 Python 解释器启动时编译进内存的。

python


Copy code
import sys
print(sys.__file__)  # sys 模块没有 __file__,会抛出 AttributeError

对于像 osdatetime 等模块,它们通常是 .py 文件,因此可以用 __file__ 查看其位置:

python


Copy code
import os
print(os.__file__)  # 输出 os 模块的安装路径

5. 标准库更新和安装

标准库与 Python 解释器一起更新,通常不可单独更新。如果你需要特定版本的标准库,通常需要更新整个 Python 安装版本。你可以通过以下方式安装或更新 Python:

  • macOS / Linux :使用包管理器(如 apt, brew)或从 Python官网 下载最新的 Python 安装包。
  • Windows :从 Python官网 下载并安装 Python。

总结

  • Python 自带的模块(标准库)安装在 Python 安装目录下,具体路径依赖于你的操作系统和 Python 版本。
  • 你可以使用 sys.prefixsys.path 查看 Python 安装目录和标准库路径。
  • 标准库通常位于 Python 安装目录的 lib/pythonX.Y/ 子目录中。

通过这些方法,你可以轻松查找 Python 自带模块的位置。

相关推荐
五行星辰1 小时前
Servlet与JSP:Java的秘密花园入口
java·开发语言·servlet
程序员非鱼1 小时前
深度学习中常见的激活函数详解
人工智能·python·深度学习·神经网络·机器学习·激活函数
Ckyeka1 小时前
Leetcode刷题笔记—栈与队列
数据结构·python·算法·leetcode
代码驿站5202 小时前
Scala语言的软件工程
开发语言·后端·golang
Code花园2 小时前
Objective-C语言的多线程编程
开发语言·后端·golang
Rverdoser2 小时前
接口项目架构流程图-thinkphp6-rabbitmq
开发语言·microsoft·ruby
Q_27437851092 小时前
django基于 Python 的考研学习系统的设计与实现
java·python·考研·django
白雪公主的后妈2 小时前
Python爬虫基础——IP反爬虫的应对
爬虫·python·random·requests模块·parsel
Jelena技术达人2 小时前
利用 Python 爬虫获取 1688 关键字 API 接口
开发语言·爬虫·python
白雪公主的后妈2 小时前
Python爬虫进阶——案例:模拟bilibili登录)
爬虫·python·selenium模块