python - Python/pip 进程在 virtualenv 中被杀死(Apple M1 芯片)
问题描述
当我在 MacBook M1 芯片 virtualenv 中执行 pip 或 python 时,进程总是立即终止,并显示如下消息:
[1] 29116 killed pip
或者
[1] 29141 killed python
M1 MacBook 原生环境中的 Python 和 pip 运行良好。
仅在 virtualenv 中它们不起作用。
解决方案
经过一番研究,我发现它与“x86_64”和“arm 64”架构有关。要解决这个问题,你必须在 x86_64 模式下运行 virtualenv python/pip。
脚步:
- 禁用 SIP:在恢复模式下重新启动 MacBook。打开
Utilities > Terminal
进入csrutil disable
。ref:禁用和启用系统完整性保护 - 以 x86_64 模式运行 SHELL:
arch -x86_64 $SHELL
在终端中输入。 - 成功执行python/pip
之后,我再次启用 SIP,arch -x86_64 $SHELL
每次都继续使用。它将成功执行 virtualenv 中的 python/pip。
为了节省时间,我在.zshrc中添加了一个别名:
别名 x86="arch -x86_64 $SHELL"
现在,如果我需要在 x86_64 模式下执行某些进程,我只需键入x86
以打开 x86_64 shell。
注意:github 上的 MxJ24 提供了这个解决方案,并列出了一些对 python/django/brew 有用的脚本:https ://gist.github.com/MxJ24/e1386c9012f533cfbedfed5114da3e60
推荐阅读
- javascript - 尝试从 vanilla JS 项目访问 Vue CLI 构建的 Web 组件方法
- asp.net - 隐藏默认为 Visible=false 的控件?
- php - 如果金额低于一定金额,Woocommerce 不会申请优惠券
- python - pyspark 中的大型数据框生成
- python - 通过在python中给出整数作为输入来获取变量
- javascript - 将 Stripe Direct Charge API 连接到基于 SMS 的电子商务平台
- azure - 实施 Intranet 应用程序的可用性测试
- python - 在jupyter笔记本中的keras中的“load_img”中输入图像时出现FileNotFoundError
- javascript - 我试图制作一个代码,在从用户那里输入 2 个数字时,生成一个随机数
- java - 为什么 CrudRepository.save(...) 返回一个值?