Aspiration

在macOS M1芯片的电脑上,常常会遇到安装了多个版本的Python的问题。这些版本可能通过不同的途径安装,如Homebrew、Anaconda、以及直接从Python官网下载安装包。由于官方已经提供了venv模块来创建虚拟环境,因此为了简化和方便管理,决定使用Homebrew来安装和更新Python。本文将介绍如何查看和删除其他版本的Python,如何使用Homebrew安装和更新Python版本,并如何配置系统默认的Python环境。

查看当前系统中的Python版本

使用以下命令可以查看系统中所有的Python 3版本路径:

which -a python3

删除其他安装的Python版本

删除Anaconda安装的Python

首先,删除Anaconda安装目录:

rm -rf ~/anaconda3

然后删除Anaconda的配置文件和缓存目录:

rm -rf ~/.condarc ~/.conda ~/.continuum

删除官方安装的Python版本

通过官方安装包安装的Python版本通常位于/Library/Frameworks/Python.framework/Versions/下,可以删除该目录下不需要的版本:

sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.x

使用Homebrew安装和更新Python

安装Homebrew

如果尚未安装Homebrew,可以通过以下命令安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装Python

通过Homebrew安装Python:

brew install python

更新Python版本

更新Homebrew和已安装的Python版本:

brew update
brew upgrade python

配置系统默认Python环境

修改.zshrc文件

编辑~/.zshrc文件,添加以下内容以将Homebrew安装的Python设置为默认的Python版本:

# Homebrew installed Python
export PATH="/opt/homebrew/bin:$PATH"
alias python=/opt/homebrew/bin/python3
alias python3=/opt/homebrew/bin/python3

对于Intel Mac,请使用:

# Homebrew installed Python
export PATH="/usr/local/bin:$PATH"
alias python=/usr/local/bin/python3
alias python3=/usr/local/bin/python3

重新加载.zshrc文件

使更改生效,重新加载.zshrc文件:

source ~/.zshrc

创建符号链接,将pip3链接到pip

创建符号链接,使pip指向pip3

ln -s /opt/homebrew/bin/pip3 /opt/homebrew/bin/pip

对于Intel Mac:

ln -s /usr/local/bin/pip3 /usr/local/bin/pip

检查Python和pip版本

验证pythonpip是否指向正确的版本:

which python
python --version
 
which pip
pip --version

更新pip

使用以下命令更新pip到最新版本:

pip install --upgrade pip
 
# some times might be need option due to OS policy
# pip install --upgrade pip --break-system-packages

Python Virtual Environment

Part 1: Setting Up the Project

  1. Create a Project Folder

    mkdir my_python_project
    cd my_python_project
  2. Set Up a Virtual Environment

    python -m venv venv
  3. Activate the Virtual Environment

    • On Windows:
      venv\Scripts\activate
    • On macOS/Linux:
      source venv/bin/activate
  4. Create a Python Program

    • Create a file called main.py in your project folder:
      # main.py
      print("Hello, world!")
  5. Install Dependencies

    • For this example, let’s install requests as a dependency:
      python -m pip install requests
  6. Generate requirements.txt

    # 把当前所用到的库都存到这个文件,方便新环境快速安装
    python -m pip freeze > requirements.txt 

For more information can check: https://docs.python.org/3/tutorial/venv.html

Part 2: Adding Version Control

  1. Initialize a Git Repository

    git init
  2. Create a .gitignore File

    • Add the following lines to ignore the virtual environment and other unnecessary files:
      venv/
      __pycache__/
      *.pyc
      .DS_Store
      
  3. Commit Your Work Frequently

    • It’s essential to commit your work often. For example, if you have an assignment or project with 10 tasks, commit at least once after completing each task:
      git add .
      git commit -m "Completed task 1"
  4. Push to GitHub

    • Create a new repository on GitHub and follow the instructions to add the remote repository:
      git remote add origin https://github.com/yourusername/my_python_project.git
      git push -u origin master

Part 3: Running on New Environment

  1. Clone the Repository

    git clone https://github.com/yourusername/my_python_project.git
    cd my_python_project
  2. Set Up a Virtual Environment

    python -m venv venv
  3. Activate the Virtual Environment

    • On Windows:
      venv\Scripts\activate
    • On macOS/Linux:
      source venv/bin/activate
  4. Install Dependencies

    python -m pip install -r requirements.txt
  5. Run the Program

    python main.py

By following these steps, you can ensure that your Python project runs smoothly across different environments and computers.

什么是Pipenv

Pipenv 是一种用于Python项目的依赖管理和虚拟环境管理工具。它集成了pipvirtualenv的功能,简化了项目设置,确保依赖的一致性和安全性。

安装Pipenv

首先,你需要在系统中安装Pipenv。你可以使用以下命令来安装它:

pip install pipenv

初始化项目

在你的项目目录中运行以下命令以初始化Pipfile:

pipenv install

这将创建一个Pipfile,用于管理项目的依赖。

安装依赖

使用Pipenv安装依赖非常简单。以下命令将在你的Pipfile中添加requests库:

pipenv install requests

管理开发依赖

如果你需要安装仅在开发过程中使用的依赖,例如测试框架,可以使用--dev标志:

pipenv install --dev pytest

这将把pytest添加到Pipfile中的[dev-packages]部分。

使用虚拟环境

Pipenv会自动创建和管理虚拟环境。你可以使用以下命令激活虚拟环境:

pipenv shell

在虚拟环境中,你可以正常运行Python命令和脚本。要退出虚拟环境,只需运行:

exit

生成和使用锁定文件

Pipenv会自动生成Pipfile.lock文件,记录确切的包版本,以确保环境的一致性。要安装Pipfile.lock中的依赖,可以使用:

pipenv install

更新依赖

你可以使用以下命令更新所有依赖到最新版本,并更新Pipfile.lock

pipenv update

卸载依赖

要卸载某个依赖,你可以使用以下命令:

pipenv uninstall <package_name>

检查依赖安全

Pipenv可以检查依赖中是否存在已知的安全漏洞。使用以下命令进行检查:

pipenv check

实际开发示例

假设你有一个名为my_project的项目。以下是使用Pipenv管理项目依赖和虚拟环境的示例:

# 创建项目目录
mkdir my_project
cd my_project
 
# 初始化Pipenv环境
pipenv install
 
# 安装生产依赖
pipenv install requests
 
# 安装开发依赖
pipenv install --dev pytest
 
# 激活虚拟环境
pipenv shell
 
# 在虚拟环境中运行Python脚本
python script.py
 
# 退出虚拟环境
exit

使用 minicondamacos 下管理Python环境

# Python 项目开发流程与 Miniconda 环境管理指南
 
## 1. 使用 Miniconda 创建 Python 虚拟环境
 
# 创建新虚拟环境
conda create --name <env_name> python=<python_version>
# <env_name>: 环境的名称 (如 `spatial_data_env` 或 `deep_learning_env`)
# <python_version>: 指定的 Python 版本 (如 `3.12` 或 `3.9`)
 
# 激活虚拟环境
conda activate <env_name>
 
# 退出虚拟环境
conda deactivate
 
# 列出所有虚拟环境
conda env list
 
 
## 2. 使用 VSCode 开发项目并管理虚拟环境
 
# 在 Finder 中创建一个新文件夹 (如 `~/projects/spatial_analysis_project`)
# 在 VSCode 中打开该项目文件夹
# 打开 VSCode 终端 (Ctrl + ~)
# 激活虚拟环境
conda activate <env_name>
 
# 自动选择 Python 环境
# 打开命令面板 (Cmd + Shift + P)
# 搜索并选择 `Python: Select Interpreter`
# 选择相应的 Conda 虚拟环境 (与 `conda env list` 显示名称一致)
 
# VSCode 会自动将虚拟环境与项目关联
 
 
## 3. 管理项目中的 Python 包
 
# 安装 Python 包
conda install <package_name>
 
# 使用 pip 安装包
pip install <package_name>
 
# 升级某个已安装的包
conda update <package_name>
 
# 查看当前虚拟环境中已安装的所有包
conda list
 
 
## 4. 使用 `environment.yml` 文件管理依赖
 
# 导出环境依赖到 `environment.yml`
conda env export > environment.yml
 
# 从 `environment.yml` 文件创建环境
conda env create -f environment.yml
 
# 更新环境依赖
conda env update --file environment.yml --prune
# --prune 参数用于删除不再需要的包
 
 
## 5. 克隆和删除环境
 
# 克隆现有环境到新的环境
conda create --name <new_env_name> --clone <existing_env_name>
 
# 删除虚拟环境
conda env remove --name <env_name>
 
 
## 6. 常见问题解答
 
# 问题: 如何在 VSCode 中始终使用正确的虚拟环境?
# 使用 `Python: Select Interpreter` 为每个项目设置默认的 Python 解释器
# 或者使用 `conda activate <env_name>` 手动激活环境
 
# 问题: 如何确保 `environment.yml` 文件与实际环境同步?
# 在每次添加或移除依赖后,运行以下命令更新 `environment.yml` 文件
conda env export > environment.yml
 
# 问题: 安装了错误的包,如何恢复?
# 查看环境的历史修订记录
conda list --revisions
 
# 使用以下命令恢复到之前的状态
conda install --revision <revision_number>