从官网下载的python有什么东西
在python官网上, 可以找到mac平台下的installer, 格式是pkg, 借助Suspicious Package, 可以清晰地看到这个下载器在什么地方安装了什么东西:
其中的可执行文件有如下四种:
python
: 这个是python脚本的解释器.pydoc
: 查看python一些模块, 函数的文档, 例如命令行中使用pydoc os
可以查看os
模块的文档.idle
: idle的全程是Integrated Development Environment, 运行这个可执行文件可以得到一个python的交互式shell.2to3
: 这个程序用于将python2代码转换成python3代码.python3-config
: 用于查询python解释器的相关信息的程序, 可以查询解释器的编译, 链接选项等等.
其中, ****3
是LTS, 而***3.11
是最新版本.
除此之外, 在pkg下载器的postinstall
脚本中, 还可以发现自动安装了pip3
和pip3.11
, 安装目录仍然是/usr/local/bin
:
python的包在哪里
- python3可执行文件在某个
bin
目录中. - python3解释器中, 规定了两个站点:
- 全局站点: 所有用户都能用, 一般在某个
bin
目录同级的lib
目录. - 用户站点: 单个用户可以用, 一般是
~/.local/lib
这种目录. - 可以使用
python3 -m site
查看解释器规定的站点
- 全局站点: 所有用户都能用, 一般在某个
pip3
下载时, 默认下载到全局站点, 如果有--user
, 那么会下载到用户站点.import
时解释器找的模块在哪里, 这个问题可以用如下代码解决:import module_name module_file = module_name.__file__ print(module_file.__file__)
一般会从解释器的全局站点和用户站点的路径中搜索.
python的虚拟环境
venv
从官网上下载的解释器默认就支持venv.
使用python3 -m venv <虚拟环境名称>
就可以在某一个目录中创建虚拟环境, 创建后的目录结构如下:
可以看到, 本质上还是把python3的那一套搬到了这个目录, 在这个目录下的pip3
和python3
都是bin
目录下的可执行文件.
Anaconda
conda是一个增强版的python, 其中比原版的python包含了更多有用的可执行文件, 例如ipython, pylint, pylsp等, 还包括conda的一些可执行文件.
conda下载并且初始化完之后, 默认你当前的虚拟环境名称是base, 其中这个环境的可执行文件一般在
~/anaconda/bin
.- 当你用
conda create
创建了虚拟环境, 并且用conda install
下载了包, 那么环境在~/anaconda/envs/<你的虚拟环境>
中. - 切换虚拟环境时, 环境变量
PATH
会改变, 执行python3
解释器时, 解释器是不同python环境下的解释器. - 在虚拟环境中
conda install
和pip install
的区别:- 相同点: 下载的路径没有区别, 都是在python站点下进行下载.
- 不同点:
- conda可以下载并管理非python包, 下载路径在
~/anaconda/pkgs
, 例如ffmpeg
. - 当base环境中有包, 但是在另一个虚拟环境A中再次用
conda install
下载时, 这时conda install
不会真的下载, 而是关联base环境. 但是pip3
依旧会下载, 因为pip3
只负责处理自己所在的虚拟环境.
- conda可以下载并管理非python包, 下载路径在