当前位置:   article > 正文

6_1 Mac M1 Python环境搭建

mac m1 python

相关链接


一、简介

1.1 系统环境

在这里插入图片描述  mac系统自带 python2或python3的环境,具体哪个版本取决于芯片类型(Intel / M1)和系统版本(12.3.1),可以在终端(Terminal)中通过命令查看。

# 没有python2环境
groupiesm@GroupiesMdeMacBook-Pro ~ % python		
zsh: command not found: python
# 有python3环境,版本为3.8.9
groupiesm@GroupiesMdeMacBook-Pro ~ % python3
Python 3.8.9 (default, Feb 18 2022, 07:45:33)
[Clang 13.1.6 (clang-1316.0.21.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("hello")
hello
>>>
>>> quit()			# 退出,或者 control+d 退出
groupiesm@GroupiesMdeMacBook-Pro ~ %
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
  which python3查看安装路径。
在这里插入图片描述


1.2 python整体结构

在这里插入图片描述


1.3 解释器

  计算机不能直接理解任何除机器语言以外的语言,所以必须把程序员所写的程序翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器。

  编译器翻译的方式有两种:一个是编译,另一个是解释。两种方式之间的区别在于翻译时间点的不同,当编译器以解释方式运行的时候,也称之为解释器

编译型语言:C、C++

解释型语言:Python
  1.由于其加载特性,决定了主程序(函数调用)必须在函数定义的下方
  2.函数之间互相调用不必遵循上一条规则(上方函数可以调用下方函数)

混合型语言:Java

在这里插入图片描述
编译型 vs 解释型

  1.跨平台能力:编译型语言 < 解释型语言
    a.编译型语言: 在不同操作系统,生成的最终可执行文件是不同的
    b.解释型语言: 在不同操作系统,使用同样的源代码,通过不同的解释器去执行

  2.运行速度:编译型语言 > 解释型语言
    a.编译型语言: 将程序提前编译成系统可识别的文件。相较于解释型语言,在执行过程中省去了解析的步骤。
    b.解释型语言: 逐行解析源码,逐行执行。


1.4 Ipython

  python可以直接在终端(iterm)中执行,这种方式叫做交互式。其中IPython是一个交互式shell,比默认的python shell好用,初学者直接使用Pycharm练习即可,可以先不安装。

支持:
  1.默认补全
  2.自动缩进
  3.bash shell命令
  4.内置许多有用的功能和函数
  5.方便退出(输入exit 或 ctrl +d)

版本:
  1.Python2.x使用的解释器是 ipython
  2.Python3.x使用的解释器是 ipython3


1.5 Anaconda

  Anaconda3,简单理解为 pip 的升级版,但有一定使用门槛,初学者可以先不用安装。
  在实际开发中可能会遇到,不同的程序在同一台机器运行,但依赖不同版本的模块,这时就需要使用Anaconda创建虚拟环境(小型虚拟机),适配不同程序的需求。


二、环境搭建

2.1 python解释器:编译环境

python环境下载地址

  mac自带python环境,可以跳过此步骤。但如果本地为python2环境,想升级python3,可自行到官网下载。建议至少比最新版本小 0.1(目前最新 3.10.4,可以下载 3.9.x版本),避免出现一些兼容性和稳定性的问题。

在这里插入图片描述
在这里插入图片描述

2.2 python开发工具:Pycharm

pycharm下载地址

在这里插入图片描述
双击,并拖入,直接完成安装
在这里插入图片描述
点击Active
在这里插入图片描述


三、使用pycharm创建项目

  Step1.创建一个新的项目,选择new project

在这里插入图片描述

  Step2.选择目录,创建项目
在这里插入图片描述

  Step3.选中目录,创建 (command + n 快捷键),选择 Python File,创建一个新的类

在这里插入图片描述
  指定类命名为 test
在这里插入图片描述

  Step4.右击空白处,点击Run Test,运行代码,可以看到控制台输出了hello python

在这里插入图片描述

  Step5.在Terminal中用解释器运行(python2:python xx.py;python3:python3 xx.py

在这里插入图片描述


四、pip管理工具包的使用

  pip是Python官方推荐的包管理工具,属于python的一部分。pip命令需要在终端(Terminal)中执行。


4.1 pip3基础命令

pip3 常用命令

1.查看版本

pip3 -V
  • 1

在这里插入图片描述

2.列出已经安装的包

# list:展示所有包,包括系统自带(例如setuptools)
# 可能有warning提示:建议使用命令更新pip的版本,也可以忽略警告(Warining)不更新
pip3 list

# freeze:展示部分包,仅通过pip命令安装的包
pip3 freeze 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

list命令在这里插入图片描述
freeze命令
在这里插入图片描述

3.安装第三方包

pip3 install 
pip3 install <包名>==1.0.0
pip3 install -r requirements.txt 
pip3 install -i <源地址> <包名>
pip3 install -e <local project path> (这个命令相当于pip3 install develop)

pip3 install requests 		# post、get请求等
pip3 install Beautifulsoup4 # 解析html、xml
pip3 install gevent 		# 并发框架
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

1.a 安装requests包 pip3 install requests在这里插入图片描述
1.b 列出已经安装的包 pip3 list
在这里插入图片描述
2.a 安装Beautifulsoup4包 pip3 install Beautifulsoup4
在这里插入图片描述
2.b 列出已经安装的包 pip3 list
在这里插入图片描述
3.a 安装gevent包 pip3 install gevent
在这里插入图片描述
3.b 列出已经安装的包 pip3 list
在这里插入图片描述

4.删除已安装的包

# 删除指定包
pip3 uninstall ${包名}
  • 1
  • 2

5.导出第三方包清单

# 默认导出所有包目录(到/Users/${用户名} 目录下),到一个指定文件中,比如这里是requirements.txt
pip3 freeze > requirements.txt
# 也可以是手动指定目录,比如导出到桌面
pip3 freeze > /Users/groupiesm/Desktop/requirements.txt
  • 1
  • 2
  • 3
  • 4

6.批量安装、删除包

# 批量删除所有第三方包(有些会删除失败),-y表示确认               
pip3 uninstall -r requirements.txt -y

# 批量安装所有第三方包
pip3 install -r requirements.txt
  • 1
  • 2
  • 3
  • 4
  • 5

五、pycharm闪退问题

日期:2022-09-19

pycharm突然打不开了,启动直接闪退。
第一反应是重启电脑,没用。接着更新系统到12.6

在这里插入图片描述

还是打不开,试着查看日志,看不懂,貌似是pycharm自带的JVM环境出了问题,找不到依赖

cd /Applications/PyCharm.app/Contents/MacOS
./pycharm
  • 1
  • 2
2022-09-19 14:05:33.304 pycharm[2611:57516] allVms required 1.8*,1.8+
2022-09-19 14:05:33.308 pycharm[2611:57519] Cannot load JVM bundle: Error Domain=NSCocoaErrorDomain Code=3585 "dlopen_preflight(/Applications/PyCharm.app/Contents/jbr/Contents/MacOS/libjli.dylib) => false, 'tried: '/Applications/PyCharm.app/Contents/jbr/Contents/MacOS/libjli.dylib' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e))), '/usr/lib/libjli.dylib' (no such file)'" UserInfo={NSLocalizedFailureReason=The bundle doesn’t contain a version for the current architecture., NSLocalizedRecoverySuggestion=Try installing a universal version of the bundle., NSFilePath=/Applications/PyCharm.app/Contents/jbr/Contents/MacOS/libjli.dylib, NSDebugDescription=dlopen_preflight(/Applications/PyCharm.app/Contents/jbr/Contents/MacOS/libjli.dylib) => false, 'tried: '/Applications/PyCharm.app/Contents/jbr/Contents/MacOS/libjli.dylib' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e))), '/usr/lib/libjli.dylib' (no such file)', NSBundlePath=/Applications/PyCharm.app/Contents/jbr, NSLocalizedDescription=The bundle “JBR-17.0.4+7-469.53-jcef 17.0.4” couldn’t be loaded because it doesn’t contain a version for the current architecture.}
rosetta_has_been_previously_installed: true
2022-09-19 14:05:33.314 pycharm[2611:57519] Retrying as x86_64...
2022-09-19 14:05:33.335 pycharm[2611:57524] allVms required 1.8*,1.8+
2022-09-19 14:05:33.337 pycharm[2611:57528] Current Directory: /Applications/PyCharm.app/Contents/MacOS
2022-09-19 14:05:33.337 pycharm[2611:57528] parseVMOptions: PYCHARM_VM_OPTIONS = /Users/groupiesm/Desktop/ja-netfilter-all/vmoptions/pycharm.vmoptions
2022-09-19 14:05:33.340 pycharm[2611:57528] parseVMOptions: platform=-1 user=-1 file=(null)
2022-09-19 14:05:33.400 pycharm[2611:57528] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
*** First throw call stack:
(
	0   CoreFoundation                      0x00007ff81adfde9b __exceptionPreprocess + 242
	1   libobjc.A.dylib                     0x00007ff81ab5fe48 objc_exception_throw + 48
	2   CoreFoundation                      0x00007ff81ae268c6 -[NSException raise] + 9
	3   AppKit                              0x00007ff81d71a0a4 -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 321
	4   AppKit                              0x00007ff81d706054 -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1288
	5   AppKit                              0x00007ff81d8aed81 -[NSPanel _initContent:styleMask:backing:defer:contentView:] + 50
	6   AppKit                              0x00007ff81d705b46 -[NSWindow initWithContentRect:styleMask:backing:defer:] + 42
	7   AppKit                              0x00007ff81d8aed3a -[NSPanel initWithContentRect:styleMask:backing:defer:] + 59
	8   AppKit                              0x00007ff81d704286 -[NSWindowTemplate nibInstantiate] + 354
	9   AppKit                              0x00007ff81d6d117d -[NSIBObjectData instantiateObject:] + 222
	10  AppKit                              0x00007ff81d6d08ec -[NSIBObjectData nibInstantiateWithOwner:options:topLevelObjects:] + 476
	11  AppKit                              0x00007ff81d6c551d loadNib + 420
	12  AppKit                              0x00007ff81d6c4a30 +[NSBundle(NSNibLoading) _loadNibFile:nameTable:options:withZone:ownerBundle:] + 788
	13  AppKit                              0x00007ff81d6c4627 -[NSBundle(NSNibLoading) loadNibNamed:owner:topLevelObjects:] + 201
	14  AppKit                              0x00007ff81da2b7f3 -[NSAlert init] + 137
	15  pycharm                             0x0000000102f5da48 -[Launcher buildArgsFor:] + 1416
	16  pycharm                             0x0000000102f5df54 -[Launcher launch] + 340
	17  Foundation                          0x00007ff81bb0e994 __NSThread__start__ + 1009
	18  libsystem_pthread.dylib             0x00007ff81acbd4e1 _pthread_start + 125
	19  libsystem_pthread.dylib             0x00007ff81acb8f6b thread_start + 15
)
libc++abi: terminating with uncaught exception of type NSException
zsh: abort      ./pycharm
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

在这里插入图片描述

尝试解决了很久都没有效果,最后在 一篇帖子回复 里找到了解决方案

在这里插入图片描述

pycharm官网,点击其他版本下载并测试,安装->尝试启动->删除。

在这里插入图片描述

测试结果:2021.2.4 - macOS (dmg) 和它之前的版本都可用。

在这里插入图片描述

总之应该就是苹果m1芯片系统自动升级,导致了和最新版pycharm不适配,出现了莫名其妙的bug。
删掉了之前的2022.2版本,最后改用2021.2版本


22/04/26

M

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/620597
推荐阅读
相关标签
  

闽ICP备14008679号