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版本
验证python
和pip
是否指向正确的版本:
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
-
Create a Project Folder
mkdir my_python_project cd my_python_project
-
Set Up a Virtual Environment
python -m venv venv
-
Activate the Virtual Environment
- On Windows:
venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
- On Windows:
-
Create a Python Program
- Create a file called
main.py
in your project folder:# main.py print("Hello, world!")
- Create a file called
-
Install Dependencies
- For this example, let’s install
requests
as a dependency:python -m pip install requests
- For this example, let’s install
-
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
-
Initialize a Git Repository
git init
-
Create a
.gitignore
File- Add the following lines to ignore the virtual environment and other unnecessary files:
venv/ __pycache__/ *.pyc .DS_Store
- Add the following lines to ignore the virtual environment and other unnecessary files:
-
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"
- 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:
-
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
- Create a new repository on GitHub and follow the instructions to add the remote repository:
Part 3: Running on New Environment
-
Clone the Repository
git clone https://github.com/yourusername/my_python_project.git cd my_python_project
-
Set Up a Virtual Environment
python -m venv venv
-
Activate the Virtual Environment
- On Windows:
venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
- On Windows:
-
Install Dependencies
python -m pip install -r requirements.txt
-
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项目的依赖管理和虚拟环境管理工具。它集成了pip
和virtualenv
的功能,简化了项目设置,确保依赖的一致性和安全性。
安装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
使用 miniconda
在 macos
下管理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>