Python环境搭建

基本概念

解释器

Python解释器是将python源码高级语言解析为二进制机器语言的工具。通常说安装python就是指安装python解释器

目前最新的Python解释器版本是Python 3.8x;另外,Python 2.x和Python 3.x不兼容。

编辑器

正如在电脑上编辑文档需要用Word、处理数据需要用Excel、做演示文稿需要用PPT、修图需要用PS一样,编写代码也需要特定的工具。而这个用来编写代码的工具就叫做编辑器

Python的编辑器有很多,有Python解释器自带的IDLE、基于iPython的Jupyter Notebook、也有如PyCharm、Spyder、WingIDE等主要针对Python代码编辑的编辑器;还有很多编辑器,如Sublime Text、VSCode、Vim等适合各种编程语言的编辑器

包管理工具

Python最大的优点之一就在于其丰富的库,pip(package installer for Python)就是库管理工具通过pip就可以安装、卸载、更新众多的库。

说明:Python3.4以后版本的解释器自带pip工具。

Anaconda

Anaconda 是一个包含 Python 解释器 + 很多数据科学工具包 + 一个包管理器 Conda集合包。安装 Anaconda 的时候,它会自动帮你安装一个 Python 解释器(一般是 Anaconda 自带的 Python),还包括:

  • 常用的库(如 numpy、pandas、matplotlib、scikit-learn 等)
  • 工具(如 Jupyter Notebook、Spyder)
  • 包管理器(conda)可以用来安装新库、创建虚拟环境

Python 解释器 VS Anaconda

Python 解释器 Anaconda
是什么 运行 Python 代码的核心程序 包含 Python 解释器 + 各种工具和库的集合包
是否包含库 不包含(需要你自己装) 自带很多科学计算和机器学习库
包管理器 通常用 pip 用 conda(也可以用 pip)
面向用户 更适合程序开发 更适合数据分析、机器学习等应用
安装后体积 很小(几十 MB) 较大(几个 GB)

因此,安装了 Anaconda,就相当于装好了 Python 和很多有用的工具,完全可以直接使用,不需要再单独去安装 Python

Miniconda

Miniconda 是一个精简版的 Anaconda。它只包含:

  • conda 包管理器
  • Python
  • 以及管理环境所需的最低依赖项

你可以把它理解为:一个“小巧但强大的环境管理器”,你想装什么包,就自己用 conda install 慢慢装,完全自主可控

Miniconda 和 Anaconda 的区别:

Anaconda Miniconda
体积 非常大(3GB+) 非常小(几十 MB)
自带库 自带上百个数据科学相关库(如 numpy、pandas、Jupyter) 不自带,需要手动安装
启动速度 初次安装大且慢 安装快、干净、灵活
适合人群 初学者快速上手 高阶用户定制环境
控制力 较低(有时会装了很多用不到的包) 很高(只装你需要的)

卸载

卸载Pycharm

  • 访达—–>Application—->找到Pycharm—->移动到废纸篓

  • 删除相关配置文件

    cd ~/Library/Application\ Support/JetBrains/
    rm -rf PyCharm2024.3
    
    cd ~/Library/Application Support/JetBrains
    rm -rf PyCharm2024.3
    

卸载Python解释器

查看自己安装了哪些Python

which python
which python3
which -a python
which -a python3
命令 意义
which python 当前默认的 python 是哪个版本
which python3 当前默认的 python3 是哪个版本
which -a python 所有被系统识别的 python 执行路径列表
which -a python3 所有被系统识别的 python3 执行路径列表

which 是一个用于显示命令路径的命令。在 Unix 系统(如 macOS 和 Linux)中,which 命令用于查找并显示执行某个命令时,系统会使用哪个可执行文件。

which python3
/opt/miniconda3/bin/python3

这意味着:

  • python3 命令 被映射到 /opt/miniconda3/bin/python3 路径。
  • 也就是说,系统使用的是 Miniconda 安装的 Python 版本,而不是其他 Python 版本(例如通过系统自带的 Python 或其他途径安装的 Python)。

which python
python: aliased to python3

在 macOS(特别是使用 zsh 的终端)中,你的系统把 python 这个命令做了一个“别名” alias,指向 python3,所以它不会去找实际路径,而是告诉你这个命令是个别名。

这意味着:

  • python 命令被设置为别名(alias),它指向了 python3
  • 换句话说,当你输入 python 时,实际上会执行 python3,这与系统的默认行为(通常 python 指向 Python 2.x)不同。

which -a python
python: aliased to python3
/opt/miniconda3/bin/python
/usr/bin/python

python: aliased to python3

  • 这表示你当前的系统将 python 命令设置为指向 python3。即:当你执行 python 时,实际上执行的是 python3

/opt/miniconda3/bin/python

  • 这个路径指的是 Miniconda 环境中的 Python。它是你通过 Miniconda 安装的 Python 版本。这个路径表示你当前的 python 命令来自 Conda 环境,通常它是你主动设置或安装的 Python。

/usr/bin/python

  • 这个路径指的是 系统自带的 Python。在 macOS 中,/usr/bin/python 是预装的 Python 版本(通常是 Python 2.x,具体取决于 macOS 版本)。

which -a python3
/opt/miniconda3/bin/python3
/Library/Frameworks/Python.framework/Versions/3.12/bin/python3
/usr/local/bin/python3
/usr/local/bin/python3
/usr/bin/python3

/opt/miniconda3/bin/python3

  • 来源:你安装的 Miniconda

    作用:这是 Conda 环境的 Python,通常是你激活了 base 环境时默认使用的 Python

    建议:保留,如果你打算以后用 Conda 管理环境,这是最推荐用的

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

  • 来源:你手动从 Python 官网(python.org)下载安装的 Python 3.12
  • 作用:可以单独用,但没环境管理功能(不像 Conda 那样强大)
  • 建议
    • 如果你用不上它,可以卸载(用 Python 官网安装器的卸载脚本)
    • 如果你想系统保持干净,建议只用 Conda,然后删掉这个

/usr/local/bin/python3(两次):符号链接(symlink)。 /usr/local/bin/python3 是指向某个其他 Python 版本的符号链接。

ls -l /usr/local/bin/python3
lrwxr-xr-x  1 root  wheel  70 Apr  7 19:16 /usr/local/bin/python3 -> ../../../Library/Frameworks/Python.framework/Versions/3.12/bin/python3
  • /usr/local/bin/python3 是一个 符号链接(symlink),它指向了 ../../../Library/Frameworks/Python.framework/Versions/3.12/bin/python3

  • 换句话说,/usr/local/bin/python3 其实是指向了你系统中安装的 Python 3.12,它位于 /Library/Frameworks/Python.framework/Versions/3.12/bin/python3 目录下。

/usr/bin/python3

  • 来源macOS 系统自带的 Python
  • 作用:系统级工具可能会用它
  • 建议千万别删!(删不了也不应该删)

删除 Python 框架

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

3.12

  • 表示你通过官网下载或其他方式安装了一个独立的 Python 3.12 版本。
  • 这个目录里包含该版本 Python 的所有内容,包括解释器、标准库、pip 等

Current

  • Current 是一个符号链接(symlink),它指向 3.12

    ls -l /Library/Frameworks/Python.framework/Versions/Current 
    lrwxr-xr-x  1 root  wheel  4 Apr  7 19:16 /Library/Frameworks/Python.framework/Versions/Current -> 3.12
    
  • 它的作用是将“当前默认版本”设为 Python 3.12,供一些程序或工具引用。

  • 实际上,它不占用太多空间,只是一个路径快捷方式。

可以直接运行以下命令:

sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.12
sudo rm -f /Library/Frameworks/Python.framework/Versions/Current

因为 /Library/Frameworks/... 是系统级路径,需要使用 管理员权限(sudo) 才能删除。否则会被拒绝

rm -f /Library/Frameworks/Python.framework/Versions/Current
rm: /Library/Frameworks/Python.framework/Versions/Current: Permission denied
rm -rf /Library/Frameworks/Python.framework/Versions/3.12       
rm: /Library/Frameworks/Python.framework/Versions/3.12: Permission denied

删除 Python 应用目录

cd /Applications

ls | grep Python
Python 3.12

sudo rm -rf Python\ 3.12

删除/usr/local/bin 目录下指向的 Python 的连接

下面存放这非常多的软链接**(symbolic links)**,也就是“快捷方式”,它们指向实际的可执行文件位置

cd /usr/local/bin/ 

ls -l
total 0
lrwxr-xr-x  1 root        wheel  67 Apr  7 19:16 2to3 -> ../../../Library/Frameworks/Python.framework/Versions/3.12/bin/2to3
lrwxr-xr-x  1 root        wheel  72 Apr  7 19:16 2to3-3.12 -> ../../../Library/Frameworks/Python.framework/Versions/3.12/bin/2to3-3.12
lrwxr-xr-x  1 xieshaolin  admin  28 Dec  7  2022 brew -> /usr/local/Homebrew/bin/brew
lrwxr-xr-x  1 root        wheel  45 Dec  6  2022 corepack -> ../lib/node_modules/corepack/dist/corepack.js
lrwxr-xr-x  1 xieshaolin  admin  31 Dec  8  2022 hugo -> ../Cellar/hugo/0.107.0/bin/hugo
lrwxr-xr-x  1 root        wheel  68 Apr  7 19:16 idle3 -> ../../../Library/Frameworks/Python.framework/Versions/3.12/bin/idle3
lrwxr-xr-x  1 root        wheel  71 Apr  7 19:16 idle3.12 -> ../../../Library/Frameworks/Python.framework/Versions/3.12/bin/idle3.12
lrwxr-xr-x  1 root        wheel  71 Mar  7 20:19 idle3.13 -> ../../../Library/Frameworks/Python.framework/Versions/3.13/bin/idle3.13
lrwxr-xr-x  1 root        admin  38 Mar  8  2024 npm -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxr-xr-x  1 root        admin  38 Mar  8  2024 npx -> ../lib/node_modules/npm/bin/npx-cli.js
lrwxrwxr-x  1 root        admin  67 Apr  7 19:17 pip3 -> ../../../Library/Frameworks/Python.framework/Versions/3.12/bin/pip3
lrwxrwxr-x  1 root        admin  70 Apr  7 19:17 pip3.12 -> ../../../Library/Frameworks/Python.framework/Versions/3.12/bin/pip3.12
lrwxrwxr-x  1 root        admin  70 Mar  7 20:19 pip3.13 -> ../../../Library/Frameworks/Python.framework/Versions/3.13/bin/pip3.13
lrwxr-xr-x  1 root        wheel  69 Apr  7 19:16 pydoc3 -> ../../../Library/Frameworks/Python.framework/Versions/3.12/bin/pydoc3
.....
lrwxr-xr-x  1 xieshaolin  admin  29 Dec  7  2022 tree -> ../Cellar/tree/2.0.4/bin/tree

我们可以 cd 进入相关的文件夹,来查看这个软链接是否还真的有用:

# 如果可以进入相关文件夹,说明不可以删除
(base) xxxxMacBook-Pro bin % cd /usr/local/Homebrew/bin
(base) xxxxMacBook-Pro bin % pwd
/usr/local/Homebrew/bin

# 如果显示没有这个文件,就说明可以删除
(base) xxxxMacBook-Pro bin % cd /Library/Frameworks/Python.framework/Versions/3.12
cd: no such file or directory: /Library/Frameworks/Python.framework/Versions/3.12

删除语句:

 sudo rm -rf 所有python相关的文件

如果不删除,Pycharm可以监测到这个版本的Python,认为还可以使用:

删除 python 的环境路径

$ vim ~/.bash_profile

删除其中 Python 的路径

卸载miniconda

不需要额外删除pip安装的包

如果你卸载了 Miniconda,那么用 pip 或 conda 安装的所有包也会一并被删除。因为你安装的所有环境、包、Python 解释器、缓存都统统被保存在 Miniconda 的安装目录下(比如:~/miniconda3//opt/miniconda3/

anaconda-clean 工具

什么是 anaconda-cleananaconda-clean 是官方提供的一个清理工具,专门用来:

  • 删除 Conda 配置文件(如 .condarc.conda
  • 删除 Anaconda Navigator 的缓存、日志
  • 删除 .continuum 目录(Anaconda 配置用)
  • 备份原始配置文件,方便你回滚

如果你还能用 conda 命令,就先安装 anaconda-clean

conda install anaconda-clean

然后运行清理命令:

# 这个命令会备份
anaconda-clean --yes
Backup directory: /Users/..../.anaconda_backup/2025-04-09T203755

# 如果备份了,需要我们手动删除
rm -rf ~/.anaconda_backup

如果不需要备份:这会直接跳过备份步骤,更干净省事(不过不是所有版本都支持该参数)。

anaconda-clean --yes --no-backup

再手动删除安装目录(Miniconda)

sudo rm -rf /opt/miniconda3

清除 shell 初始化配置

Miniconda 会在你的 .zshrc.bash_profile 中添加启动代码。

# 以下文件都有可能包含  Miniconda的  启动代码
nano ~/.zshrc
nano ~/.zsh_profile
nano ~/.bashrc
nano ~/.bash_profile
nano ~/.profile

找到这段(一般在文件底部),然后整段删掉

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
........省略........
unset __conda_setup
# <<< conda initialize <<<

然后保存并退出:

# 刚开始进入的是这个页面,修改制卡可以执行以下两个命令
#  ^O WriteOut --- ctrl + O 保存内容(但是不会退出,还可以继续编辑)
#  ^X Exit ------- ctrl + X: 保存并且退出
[ Read 13 lines ]
^G Get Help   ^O WriteOut   ^R Read File   ^Y Prev Page   ^K Cut Text    ^C Cur Pos
^X Exit       ^J Justify    ^W Where Is    ^V Next Page   ^U UnCut Text  ^T To Spell


# 执行ctrl + X 命令之后,出现以下选项
# 选择 "Y"(Yes):保存更改并退出。
# 选择 "N"(No):不保存更改,退出编辑器,所有修改都将丢失。
# 选择 ^C(Cancel):取消退出,继续编辑文件。
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?                                                                                                                                                                                                
 Y Yes
 N No           ^C Cancel
 
# 选择 Y 之后出现以下选项, 注意相比刚开始的时候,多了一行:File Name to Write: /Users/xieshaolin/.zshrc 
# 这个时候按 Enter(回车键)
File Name to Write: /Users/xieshaolin/.zshrc                                                                                                                                                                                                               
^G Get Help   ^T To Files     M-M Mac Format   M-P Prepend
^C Cancel     M-D DOS Format  M-A Append       M-B Backup File

重新加载 shell 配置

source ~/.zshrc
source ~/.zsh_profile
source ~/.bashrc
source ~/.bash_profile
source ~/.profile

重启或重新加载所有配置

有时,即使你删除了文件,终端会保留旧的环境变量或 shell 配置。你可以重启终端或者运行以下命令重新加载所有配置:

exec $SHELL

验证

which conda

# 如果一切正常, 它应该不再输出任何路径
conda not found

# 如果删除不彻底,会显示路径,或者如下内容
conda () {
	\local cmd="${1-__missing__}"
	case "$cmd" in
		(activate | deactivate) __conda_activate "$@" ;;
		(install | update | upgrade | remove | uninstall) __conda_exe "$@" || \return
			__conda_activate reactivate ;;
		(*) __conda_exe "$@" ;;
	esac
}

为什么 (base) 不见了

(base) 是 Anaconda 或 Miniconda 环境的默认环境,它表示你处于 Conda 的 base 环境中。当你安装了 Anaconda 或 Miniconda 后,它通常会自动在你的 .zshrc 文件中添加一行初始化代码,允许你激活 base 环境。每次启动终端时,base 环境会被自动激活,因此你会看到 (base) 显示在命令行提示符中。

当你 卸载 Miniconda 或 Anaconda 后,base 环境也会随之消失,因为没有了 Conda 环境的支持。

为什么 (base) 消失了?:这是因为你删除了 Conda 配置文件和相关初始化代码,导致终端无法自动激活 base 环境。(base) 只会在 Conda 安装和初始化代码存在时自动显示。

安装

安装Pycharm

下载网址(历史版本):https://www.jetbrains.com/pycharm/download/other.html

安装没有什么特别的

安装miniconda

下载网址:https://www.anaconda.com/download/success

安装没有什么好讲的,直接下一步,下一步就好了。

验证是否安装好miniconda:conda info

(base) xxxxxxxxMacBook-Pro ~ % conda info

     active environment : base
    active env location : /opt/miniconda3
            shell level : 1
       			..............
           offline mode : False

Miniconda & Anaconda的使用

Conda常用命令

与包相关的命令

# 查找包,查找相关库中都有哪些版本 : conda search 包名
(base) xxxxx% conda search django
Loading channels: done
# Name                       Version           Build  Channel             
django                        1.11.8  py27hd476221_0  pkgs/main           
...... ...... ......          
django                         5.1.3 py312hecd8cb5_0  pkgs/main   


# 安装最新的包:conda install 包名
conda install django
# 安装指定的包:conda install 包名==version
conda install django==5.0.3
# 如果指定的包不存在,会报下面的错误:PackagesNotFoundError
PackagesNotFoundError: The following packages are not available from current channels:
  - django==5.0.3
# 这个时候可以使用 conda-forge 这个更全面的第三方社区频道
# 从指定通道安装包: conda install -c 通道名 包名
conda install -c conda-forge django==5.0.3


# 更新某个包: conda update 包名
# 更新所有包: conda update --all

# 查看已安装包: conda list

# 删除包:conda remove 包名

conda-forge 是什么

conda-forge 是一个 由社区驱动维护的 Conda 包仓库,是 Conda 官方 defaults 渠道之外最受欢迎的第三方渠道。

这个第三方渠道为什么存在:

你当前的 conda 默认使用的是官方主渠道 defaults。Conda 的主频道往往更新比较慢,尤其对于一些非数据科学核心库(比如 Django 这种 web 框架)。

defaults(官方) conda-forge(社区)
维护者 Anaconda 公司 全球社区开发者
包更新速度
包数量 相对少 非常丰富
可用性 稳定 更广(也很稳定)

PyCharm的使用

无法看到项目文件

先把缓存清楚


配置Django:

Django project root (Django 项目根目录):填写包含 manage.py 的目录

Settings (配置文件路径):填写你的 settings.py 所在的 Python 路径(不是文件系统路径)

Manage script:填写你的 manage.py 文件路径(可以点击右侧选择)

Environment variables:如果你用 .envDJANGO_SETTINGS_MODULE 变量,可以设置在这里。(通常可以跳过或默认)

Folder pattern to track files:一般留空即可,除非你要限制某些目录被 Django 跟踪。(通常可以跳过或默认)

配置完成之后,就可以看到项目文件:


但是这个时候找不到Django Server,需要重新配置:

Name(可选):和项目同名

Working directory(必须填):选择包含 manage.py 的目录:

Environment variables(推荐填):

  • 添加环境变量 DJANGO_SETTINGS_MODULE,指向你的 settings.py

  • 同时可以继续保留已有的 PYTHONUNBUFFERED=1,写法如下(用分号分隔)

    PYTHONUNBUFFERED=1;DJANGO_SETTINGS_MODULE=templates_demo.settings
    
    • DJANGO_SETTINGS_MODULE:告诉 Django,你要用哪个 settings 文件作为配置文件。
    • PYTHONUNBUFFERED=1:告诉 Python:标准输出(stdout)不要缓冲,直接输出。 默认情况下 Python 会对输出做“缓冲”,特别是在命令行运行脚本时,比如:print("Hello, world!")。有时候你会发现这行输出会 延迟显示,甚至直到程序结束才输出。那是因为 缓冲机制

Paths to ".env" files(可选):如果你用 .env 管理 SECRET_KEY 等配置,就可以在这里加上路径。没有可以留空

端口号和 host:你设置的是默认的 localhost:8000,这个可以保留不改。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1909773034@qq.com

×

喜欢就点赞,疼爱就打赏