博客
关于我
Apple M1上如何用pip安装x86的Python Wheel包
阅读量:635 次
发布时间:2019-03-13

本文共 2400 字,大约阅读时间需要 8 分钟。

Apple M1 Python 开发环境配置与兼容性解决方案

随着Apple M1系列电脑的普及,越来越多的开发者开始尝试在其上进行Python开发。对于依赖x86库的Python包(如OpenCV)的开发者来说,如何在M1上顺利安装并使用这些库是一个常见的难题。尽管M1采用ARM架构,但其支持通用二进制(Universal Binary)特性,可以同时运行x86和ARM库。但 Cloth talk 这一特性并非自动开放,因此需要通过特定方法解锁和配置。

需要熟悉的环境:Apple M1 及其工具

默认情况下,Apple M1预装Python 2.7。为了能够运行Python 3.x程序,建议按照以下步骤进行配置:

1. 安装后续必要工具

首先确保Terminal中有良好的文本编辑器支持。你可以选择安装一些高效的终端工具,比如:

  • iTerm2:一个功能强大的终端仿真器,支持分页、多语种支持等。
  • ** CoronaSDK 火焰工具**:可选,但这篇文章暂时不深入讨论。

安装完成后,你可以在终端中更高效地启动和管理Python环境。

2. 安装Python 3.x 并验证

在开始安装依赖库前,需要确认Python环境的安装是否成功。你可以运行以下步骤:

python3 --version

预计会看到以下输出:

Python 3.x.x (x86_64) -

图1:你也可以在Terminal中运行which python3查看完整路径。

3. 安装 Python 3 的可执行文件

如果发现自己无法直接调用Python 3 命令,可以按照以下步骤完成字如清除Python环境:

在Terminal中执行以下命令以进入Python的安装目录:

cd /usr/bin

然后复制并执行以下命令以安装Python 3.x 的可执行文件:

mv Python3 Python3-x86_64

确认完成后,你可以通过在终端中输入Python3-x86_64来启动相应版本的Python。

4. 安装 x86 向量 wheel 包

为了安装包含x86依赖的Python包(如OpenCV),我们需要确保所选包丁指定了x86架构。毕竟M1本身可能会将二进制文件默认转化为 arm64 格式。

方法一:手动指定架构

在终端中强制指定通 x86_64 的架构,可以通过以下命令运行:

arch -x86_64 $(which Python3-x86_64) pip install [包名]

例如,安装OpenCV及相关库:

arch -x86_64 $(which Python3-x86_64) pip install opencv-python opencv-cprecation

如果你需要使用C++扩展模块(如面部识别等功能),请注意选择相应的库。

方法二:设置终端默认环境参数

有些用户更倾向于永久性地设置终端默认参数,以提升效率。如需多次执行x86_64架构下的操作,可以配置 shell 初始文件。

默认的 bash 配置文件位于 ~/.bashrc。你可以添加如下的内容:

echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrcsource ~/.bashrc

这样,终端会优先在 x86_64 的路径中搜索命令和程序。

5. 验证结果

为了验证安装是否正确,可以运行以下命令查看OpenCV库的信息:

import cv2 as cvprint(cv.__version__)# 如果成功输出版本号,则安装成功。

如果在程序运行时遇到权限不足的问题,可以参考后续一节进行解决。

到目前为止

这篇文章重点介绍了在Apple M1 中安装 x86_64 形式的 Python 3.x 环境,并成功使用包含x86库的 Python 包。这是解决许多开发者遇到的兼容性难题的核心所在。

下一部分将介绍如何运行OpenCV摄像头功能,并可能解决类似环境下的一些权限问题。


待补充内容:

OpenCV 活动摄像头功能验证

在实际应用中,摄像头功能可能会受到多个方面的限制。如OSP jewelry 要考虑摄像头权限、API调用等操作。这在环境配置完毕后才会暴露出来,所有部分的工作都将切实可行。

如果发生_total rodeo_错误,可以参考终端中查看摄像头设备列表的方式:

python3 -c "import cv2; print(cv2.VideoCapture(0).open(0))"

通常情况下,如果权限不足会有,如下错误描述:

OpenRTC error: failed to open camera

如果你在iTerm2中遇到类似问题,请确保摄像头权限已经分配给终端用户。你可以反运行以下命令:

sudo chmod 777 /dev/video*

这样,视频设备及相关设备节点就会被赋予完整读取权限。

常见错误与解决办法

在实际配置过程中,可能会遇到以下问题:

  • 错误 1:无法识别Python环境

    pip installází 1 chainpython3

    这表明Python未被正确识别。检查终端中是否有Python可执行文件。

  • 错误 2:不兼容的二进制类型

    pip install error: architecture`SAMD`

    通过检查生成的支持文件格式,以确保它们确实以x86_64形式存在。

  • 错误 3:权限不足

    PermissionError: 不足以打开设备

    这类问题通常是在摄像头设备节点上工作,可能需要调用sudo 权限。

通过以上步骤,读者可以稳固地配置一个在 Apple M1 中运运行x86_64形式的 Python 开发环境,并顺利地使用包含x86库的 Python 套件来完成开发和测试任务。

转载地址:http://pqlaz.baihongyu.com/

你可能感兴趣的文章
MySQL Join算法与调优白皮书(二)
查看>>
Mysql order by与limit混用陷阱
查看>>
Mysql order by与limit混用陷阱
查看>>
mysql order by多个字段排序
查看>>
MySQL Order By实现原理分析和Filesort优化
查看>>
mysql problems
查看>>
mysql replace first,MySQL中处理各种重复的一些方法
查看>>
MySQL replace函数替换字符串语句的用法(mysql字符串替换)
查看>>
mysql replace用法
查看>>
Mysql Row_Format 参数讲解
查看>>
mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
查看>>
MySQL Server 5.5安装记录
查看>>
mysql server has gone away
查看>>
mysql slave 停了_slave 停止。求解决方法
查看>>
MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
查看>>
MYSQL sql语句针对数据记录时间范围查询的效率对比
查看>>
mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
查看>>
mysql Timestamp时间隔了8小时
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
mysql union orderby 无效
查看>>