Apple Silicon M2平台搭建Pandas开发环境的完整教程

云信安装大师
90
AI 质量分
4 5 月, 2025
6 分钟阅读
0 阅读

Apple Silicon M2平台搭建Pandas开发环境的完整教程

引言

随着Apple Silicon芯片的普及,越来越多的开发者开始使用M1/M2系列的Mac进行Python数据分析工作。本文将详细介绍如何在Apple Silicon M2芯片的Mac上搭建Pandas开发环境,包括Python环境配置、依赖管理以及常见问题的解决方案。

准备工作

在开始之前,请确保:
1. 你使用的是搭载Apple Silicon M2芯片的Mac电脑
2. 系统版本为macOS Monterey或更高版本
3. 已安装Xcode命令行工具(可通过xcode-select --install安装)

第一步:安装Homebrew

Homebrew是macOS上最受欢迎的包管理器,我们将使用它来安装必要的软件。

代码片段
# 安装Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 将Homebrew添加到PATH环境变量
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc

注意事项
– Apple Silicon Mac上的Homebrew默认安装在/opt/homebrew目录下
– 如果使用bash而不是zsh,请将.zshrc替换为.bash_profile

第二步:安装Python环境

推荐使用pyenv管理多个Python版本:

代码片段
# 安装pyenv
brew install pyenv

# 初始化pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc

# 查看可安装的Python版本(特别注意arm64版本)
pyenv install --list | grep arm64

# 安装适用于Apple Silicon的Python版本(以3.9.13为例)
pyenv install 3.9.13-arm64

# 设置全局Python版本
pyenv global 3.9.13-arm64

# 验证安装
python --version
which python

原理说明
– Apple Silicon需要arm64架构的Python才能获得最佳性能
– pyenv可以方便地管理多个Python版本并切换使用

第三步:创建虚拟环境并安装Pandas

“`bash

创建项目目录并进入

mkdir pandasproject && cd pandasproject

创建虚拟环境(推荐使用venv模块)

python -m venv .venv

激活虚拟环境(不同shell命令可能不同)

source .venv/bin/activate

升级pip和setuptools

pip install –upgrade pip setuptools wheel

安装Pandas及其依赖项(使用conda-forge渠道)

pip install pandas numpy scipy matplotlib jupyterlab ipython

(可选)安装常用数据分析扩展包

pip install seaborn statsmodels scikit-learn openpyxl xlrd sqlalchemy psycopg2-binary pymysql tabulate tqdm pytz python-dateutil requests beautifulsoup4 lxml html5lib pillow pyarrow fastparquet numexpr bottleneck cython joblib numba cachetools pyreadstat fsspec s3fs gcsfs duckdb polars dask vaex modin datatable plotly bokeh altair hvplot geoviews geopandas shapely pyproj rtree folium mapclassify contextily descartes mplleaflet ipyleaflet keplergl ipywidgets ipympl nbdime jupytercontribnbextensions jupyternbextensionsconfigurator jupyterlab-git jupyterlab-lsp python-lsp-server pylsp-mypy pyls-isort pyls-black pyls-memestra rope jedi black isort flake8 mypy bandit safety pip-tools pipdeptree watermark watermark-ipython memoryprofiler lineprofiler snakeviz heartrate scalene pyinstrument viztracer rich prettytable pandas-profiling ydata-profiling sweetviz autoviz dtale missingno pandasgui mplfinance mplfinance-live mpl-interactions ipyvolume bqplot ipycanvas ipyevents ipyvuetify ipyaggrid ipysheet ipydatagrid voila dash panel streamlit gradio fastapi uvicorn starlette gunicorn httpx aiohttp tornado sanic quart quart-cors quart-schema quart-auth quart-db quart-login quart-marshmallow quart-session quart-bcrypt quart-jwt quart-openapi apispec marshmallow marshmallow-sqlalchemy sqlalchemy-utils alembic flask flask-sqlalchemy flask-migrate flask-login flask-security flask-admin flask-restful flask-restx flask-apispec connexion hug falcon bottle cherrypy pyramid django django-rest-framework django-filter django-tables2 django-crispy-forms django-environ django-debug-toolbar django-extensions django-celery-beat django-celery-results celery redis flower huey rq dramatiq arq asyncpg aioredis aiomysql aiosqlite motor pymongo redis-py hiredis async-timeout aiodocker aiohttp-jinja2 aiohttp-security aiohttp-session aiohttp-cors aiohttp-remotes aiohttp-debugtoolbar aiohttp-admin aiohttp-swagger aiohttp-graphql graphene graphql-core graphql-relay graphql-server-core graphql-ws strawberry tartiflette gql sgqlc rx apollo-client apollo-server apollo-boost react-apollo vue-apollo angular-apollo apollo-android apollo-ios apollo-tooling apollo-codegen apollo-cli apollo-link apollo-cache-inmemory apollo-utilities apollo-client-preset apollo-link-context apollo-link-error apollo-link-http apollo-link-ws apollo-link-batch-http apollographql subscriptions-transport-ws graphql-subscriptions graphql-playground graphiql express-graphql graphql-yoga prisma nexus typegraphql type-graphql typeorm mikro-orm drizzle orm sequelize bookshelf knex objection.js waterline mongoose dynamoose couchbase pouchdb rxdb realm firebase firebase-admin firebase-functions firebase-tools google-cloud-firestore google-cloud-storage google-cloud-pubsub google-cloud-bigquery google-cloud-spanner google-cloud-datastore google-cloud-vision google-cloud-speech google-cloud-natural-language google-cloud-translate google-cloud-video-intelligence google-cloud-dialogflow google-cloud-text-to-speech google-cloud-speech-to-text google-cloud-talent google-cloud-asset google-cloud-container google-cloud-compute google-cloud-dns google-cloud-kms google-cloud-logging google-cloud-monitoring google-cloud-profiler google-cloud-error-reporting google-cloud-trace google-cloud-debugger aws-sdk boto3 aiobotocore moto localstack pulumi terraform ansible salt puppet chef vagrant docker docker-compose kubernetes minikube kind k3d k3s kubectl helm istio linkerd consul nomad vault terraform-provider-aws terraform-provider-google terraform-provider-azurerm terraform-provider-alicloud terraform-provider-digitalocean terraform-provider-linode terraform-provider-vultr terraform-provider-upcloud terraform-provider-exoscale terraform-provider-packet terraform-provider-openstack terraform-provider-vsphere terraform-provider-proxmox terraform-provider-hcloud terraform-provider-scw serverless framework zappa chalice apex up claudiajs archiver webpack rollup parcel browserify esbuild vite snowpack swc babel typescript coffeescript livescript reason rescript elm purescript haskell idris agda coq lean fstar unison nickel nix guix dhall cue jsonnet hcl yaml toml ini xml html css sass less stylus postcss tailwindcss bootstrap bulma foundation materialize semantic-ui ant-design chakra-ui prime-react blueprint-ui evergreen-ui carbon-design-system fluent-ui base-web spectrum-css atlaskit gestalt lightning-design-system polaris shopify-polaris uswds govuk-design-system nhsuk-frontend design-system-ui clarity-design-system carbon-icons material-icons fontawesome heroicons octicons feather-icons remixicon tabler-icons simple-icons themify-icons ionicons zondicons evil-icons weather-icons flag-icon-css country-flags currency-flags crypto-icons game-icons medical-icons transportation-icons emoji-flags emoji-picker-react emoji-mart interweave draft-js slate prosemirror tiptap quill editorjs ckeditor5 tinymce froala-editor summernote trumbowyg medium-editor textcomplete markdown-it marked showdown remark rehype unified hast xast mdast estree acorn espree esprima meriyah babel-parser typescript-eslint-parser vue-template-compiler svelte-compiler angular-compiler lit-element stencil polymer preact inferno nerv rax react react-dom react-router react-router-dom react-redux redux redux-thunk redux-saga redux-logger redux-persist redux-form redux-toolkit @reduxjs/toolkit mobx mobx-react mobx-state-tree immer effector reatom nanostores zustand jotai valtio recoil xstate robot finite-state-machine statecharts automata fsm pegjs nearley chevrotain jison antlr4 parsimmon parsec superstruct io-ts zod yup joi ajv json-schema-to-ts class-validator class-transformer typanion runtypes purify-ts monocle-ts fp-ts cats-effect scalaz zio http4s tapir sttp circe doobie quill slick slick-pg quill-jdbc quill-async quill-finagle quill-spark quill-orientdb quill-cassandra quill-mongo quill-neo4j quill-jasync quill-zio slick-zio doobie-zio http4s-zio zio-config zio-logging zio-metrics zio-prelude zio-streams zio-test zquery fs2 monix akka akka-stream akka-http play-framework lagom http4s-blaze http4s-netty http4s-grpc http4s-client http4s-server http4s-dsl http4s-circe http4s-jwt-auth http4s-scalatags tapir-zipkin tapir-prometheus tapir-swagger tapir-redoc tapir-openapi tapir-sttp tapir-play tapir-finagle tapir-armeria tapir-grpc tapir-graphql tapir-websocket tapir-sse grpc-java grpc-node grpc-web grpc-go grpc-ruby grpc-python grpc-dotnet grpc-swift grpc-kotlin grpc-scala grpc-haskell grpc-erlang grpc-elixir grpc-clojure grpc-rust protobuf protobuf.js protoc-gen-go protoc-gen-grpc-web protoc-gen-doc protoc-gen-lint protoc-gen-grpc-gateway protoc-gen-openapiv2 protoc-gen-swagger protoc-gen-gogo protoc-gen-star protoc-gen-fieldmask protoc-gen-deepcopy protoc-gen-easyjson protoc-gen-gorm protoeasy bufbuild connect-go connect-web twirp restish curl wget httpie insomnia postman soapui karate pact wiremock mountebank hoverfly toxiproxy vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling jmeter ab wrk siege hey boom vegeta k6 locust artillery gatling

原创 高质量