看到问题了!你的构建过程仍然被系统环境劫持,链接器在找 Python 3.8 而不是 Python 3.10。关键问题:
- JAVA_HOME 设置错误 :
/usr/local/opt/openjdk@11
这个路径不存在 - 链接器仍在找 Python 3.8 :
-lpython3.8
和 Xcode 的 Python3.framework/3.8
强制修复方案
1. 完全清理环境
bash
# 删除所有旧环境
rm -rf /Users/app-dir/.venv*
rm -rf /Users/app-dir/.venv310
# 清理环境变量
unset JAVA_HOME PYTHONPATH SDKROOT CPATH CFLAGS LDFLAGS
2. 重新安装 JDK 11
bash
# 安装 JDK 11
brew install openjdk@11
# 找到正确的路径
ls -la $(brew --prefix openjdk@11)
# 设置正确的 JAVA_HOME
export JAVA_HOME=$(brew --prefix openjdk@11)/libexec/openjdk.jdk/Contents/Home
export PATH="$JAVA_HOME/bin:$PATH"
# 验证
javac -version
echo "JAVA_HOME: $JAVA_HOME"
3. 安装 Python 3.10
bash
# 安装 Python 3.10
brew install python@3.10
# 找到正确的路径
ls -la $(brew --prefix python@3.10)
# 创建虚拟环境
$(brew --prefix python@3.10)/bin/python3.10 -m venv /Users/app-dir/.venv310
source /Users/app-dir/.venv310/bin/activate
# 验证
python --version
which python
4. 强制设置编译环境
bash
# 确保在虚拟环境中
source /Users/app-dir/.venv310/bin/activate
# 强制设置 Python 3.10 路径
export PYTHON_LIB="$(brew --prefix python@3.10)/lib"
export PYTHON_INCLUDE="$(brew --prefix python@3.10)/include/python3.10"
# 设置编译环境
export CFLAGS="-I$PYTHON_INCLUDE"
export LDFLAGS="-L$PYTHON_LIB"
export ARCHFLAGS="-arch arm64"
# 验证路径
ls -la "$PYTHON_LIB"
ls -la "$PYTHON_INCLUDE"
5. 安装 jep
bash
# 升级工具
pip install -U pip setuptools wheel
# 强制源码安装
pip install --no-binary=:all: --no-cache-dir jep==4.2.2
如果还是不行
方案 1:使用预编译版本
bash
pip install --only-binary=:all: jep==4.2.2
方案 2:直接升级 JDK
bash
brew install openjdk@17
export JAVA_HOME=$(brew --prefix openjdk@17)/libexec/openjdk.jdk/Contents/Home
export PATH="$JAVA_HOME/bin:$PATH"
关键点
- 完全清理旧环境,避免路径冲突
- 使用正确的 Homebrew 路径 ,不是
/usr/local/opt/
- 强制设置 Python 3.10 路径,避免被系统 Python 3.8 劫持
请按步骤执行,如果还有问题,请贴出:
brew --prefix openjdk@11
的输出brew --prefix python@3.10
的输出echo $JAVA_HOME
的输出