在 Mac 上使用 Python

在运行 macOS 的 Mac 上的 Python 原则上与在其他 Unix 平台上的 Python 非常相似,但有一些额外的特性,如 IDE 和包管理器,值得指出。

5.1. 获取和安装 MacPython

macOS 曾经在 10.8 至 12.3 版中预装了 Python 2.7。 建议你从 Python 网站 (https://www.python.org) 安装最新版本的 Python 3。 那里也提供了当前 Python 的 "通用二进制" 编译版,它可以在使用新 Intel 和传统 PPC CPU 的 Mac 上原生运行。

你安装后得到的东西有:

  • 会有一个 Python 3.12 文件夹在你的 Applications 文件夹中。 在这里你可以找到 IDLE,它是作为官方 Python 发行版标准组成部分的开发环境;以及 PythonLauncher,它负责处理在 Finder 中双击 Python 脚本的操作。

  • 框架 /Library/Frameworks/Python.framework ,包括 Python 可执行文件和库。安装程序将此位置添加到 shell 路径。 要卸载 MacPython ,你可以简单地移除这三个项目。 Python 可执行文件的符号链接放在 /usr/local/bin/ 中。

Apple 提供的 Python 版本分别安装在 /System/Library/Frameworks/Python.framework 和 /usr/bin/python 中。 你永远不应修改或删除这些内容,因为它们由 Apple 控制并由 Apple 或第三方软件使用。 请记住,如果你选择从 python.org 安装较新的 Python 版本,那么你的计算机上将安装两个不同但都有用的 Python ,因此你的路径和用法与你想要执行的操作一致非常重要。

IDLE 包含一个帮助菜单,允许你访问 Python 文档。 如果您是 Python 的新手,你应该开始阅读该文档中的教程介绍。

如果你熟悉其他 Unix 平台上的 Python ,那么你应该阅读有关从 Unix shell 运行 Python 脚本的部分。

5.1.1. 如何运行 Python 脚本

你在 macOS 上开始使用 Python 的最好方法是通过 IDLE 集成开发环境,参见章节 IDE 以及在IDE运行时使用帮助菜单。

如果你想从终端窗口命令行或 Finder 中运行 Python 脚本那么你首先需要用一个编辑器来创建你的脚本。 macOS 自带了一些标准的 Unix 命令行编辑器,vim 和 emacs 就是其中的两个。 如果你想要一个更具 Mac 风格的编辑器,那么来自 Bare Bones Software 的 BBEdit 或 TextWrangler 是不错的选择 (参见 Bare Bones Software | BBEdit 14),还有 TextMate (参见 TextMate: Text editor for macOS)。 其他的编辑器包括 Gvim (Redirecting to https://macvim.org) 和 Aquamacs (The Emacs for the Mac · Aquamacs Emacs)。

要从终端窗口运行脚本,必须确保:file:/usr/local/bin 位于 shell 搜索路径中。

要从 Finder 运行你的脚本,你有两个选择:

  • 把脚本拖拽到 PythonLauncher

  • 选择 PythonLauncher 作为通过 finder Info 窗口打开脚本(或任何 .py 脚本)的默认应用程序,然后双击脚本。 PythonLauncher 有各种首选项来控制脚本的启动方式。 拖拽方式允许你为一次调用更改这些选项,或使用其“首选项”菜单全局更改内容。

5.1.2. 运行有图形界面的脚本

对于旧版本的 Python ,有一个需要注意的 macOS 特殊问题:与 Aqua 窗口管理器通信的程序(换句话说,任何有 GUI 的程序)需要以特殊的方式运行。使用 pythonw 而不是 python 来启动此类脚本。

对于 Python 3.9,你可以使用 python 或者 pythonw

5.1.3. 配置

macOS 上的 Python 遵循所有标准的 Unix 环境变量,例如 PYTHONPATH ,但是为从 Finder 启动的程序设置这些变量是不标准的,因为 Finder 在启动时不会读取你的 .profile 或 .cshrc 。你需要创建一个文件 ~/.MacOSX/environment.plist 。详情请看苹果的技术文件QA1067。

更多关于在 MacPython 中安装 Python 包的信息,参阅 安装额外的 Python 包 部分。

5.2. IDE

MacPython 附带标准的 IDLE 开发环境。 有关使用 IDLE 的详细介绍,请访问 One Day of IDLE Toying 。

5.3. 安装额外的 Python 包

本小节已移至 Python Packaging User Guide。

5.4. Mac 上的图形界面编程

使用 Python 在 Mac 上构建 GUI 应用程序有多种选择。

PyObjC 是一个 Python 到 Apple 的 Objective-C/Cocoa 框架的绑定,这是大多数现代 Mac 开发的基础。 有关 PyObjC 的信息,请访问 pyobjc · PyPI。

标准的 Python GUI 工具包是 tkinter,基于跨平台的 Tk 工具包(https://www.tcl.tk)。 Apple 的 macOS 捆绑了 Aqua 原生版本的 Tk,其最新版本可以从 https://www.activestate.com 下载和安装;它也可以从源代码构建。

wxPython 是另一个流行的跨平台 GUI 工具包,可以在 macOS 上原生运行。软件包和文档可从 https://www.wxpython.org 获取。

PyQt 是另一个流行的跨平台 GUI 工具包,可以在 MacOS 上原生运行。更多信息可以在 Riverbank Computing | Introduction 找到。

5.5. 在 Mac 上分发 Python 应用程序

在 Mac 上部署独立 Python 应用程序的标准工具是 py2app 。关于安装和使用 py2app 的更多信息可以在 py2app · PyPI 找到。

5.6. 其他资源

MacPython 邮件列表是 Mac 上 Python 用户和开发人员的优秀支持资源:

Pythonmac-SIG - SIG on Python for the Apple Macintosh | Python.org

另一个有用的资源是 MacPython wiki :

MacPython - Python Wiki

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/237321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【已解决】vs2015下c++对sqlite的操作

本博文源于笔者操作sqlite3,借鉴了很多文章的思路,这里并整理了c常用的对数据库的操作供大家点赞收藏以后备用。包含了:c对sqlite3的创建数据库、创建数据表、写入数据表、读取数据表、删除数据表。也包括了最基础的让c运行sqlite3.内容供读者…

手机无人直播的兴起

近年来,随着科技的不断进步和智能手机的普及,手机无人直播成为了一种新兴的传媒方式。手持手机,不经过镜头操作人员的干预,通过直播平台实时分享自己的所见所闻,成为了越来越多人的选择。手机无人直播的盛行离不开以下…

[node]Node.js 中REPL简单介绍

[node]Node.js 中REPL简单介绍 什么是REPL为什么使用REPL如何使用REPL 命令REPL模式node的全局内容展示node全局所有模块查看全局模块具体内容其它命令 实践 什么是REPL Node.js REPL(Read Eval Print Loop:交互式解释器) 表示电脑的环境,类似 Windows 系统的终端或…

Hardhat环境搭建(六)---无需翻墙

Hardhat环境搭建 官方地址 node环境 npm环境 git环境 安装hardhat npm init npminit是什么 在node开发中使用npm init会生成一个pakeage.json文件,这个文件主要是用来记录这个项目的详细信息的,它会将我们在项目开发中所要用到的包,以…

Mac查询本机ip地址

Mac系统版本和网络配置不同,可能会有一些细微差别。 一、 使用系统偏好设置 1、点击屏幕左上角的Apple图标,选择“系统偏好设置”。 2、点击“网络”。 3、 在左侧选择当前连接的网络(如Wi-Fi或以太网),在右侧界面&a…

达梦到达梦的外部链接dblink(DM-DM DBLINK)

一. 使用场景: 部链接对象(LINK)是 DM 中的一种特殊的数据库实体对象,它记录了远程数据库的连接和路径信息,用于建立与远程数据的联系。通过多台数据库主库间的相互通讯,用户可以透明地操作远程数据库的数…

Java Web3J :使用web3j调用自己的智能合约的方法(教程)

代码世界有很多令人大呼小叫的技巧!有的代码像魔术师一样巧妙地隐藏了自己,有的像魔法师一样让你眼花缭乱,还有的像瑜伽大师一样灵活自如。它们让我们惊叹不已,让我们觉得自己仿佛置身于编码的魔幻世界。快来分享你见过哪些令你膛目结舌的代码技巧吧! 目录 web3j调用智能合…

前端开发新趋势:Web3 与虚拟现实的技术融合

在当今互联网技术日新月异的时代,Web技术也在不断地发展和变革。从前端开发的角度来看,新技术的涌现和旧技术的迭代让前端开发者们面临着前所未有的挑战和机遇。Web3 与虚拟现实(VR)的技术融合,正是当前前端开发领域的…

​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化

2022年亚马逊云科技re:Invent盛会于近日在拉斯维加斯成功召开,吸引了众多业界精英和创新者。亚马逊云科技边缘服务副总裁Jan Hofmeyr在演讲中分享了关于亚马逊云科技海外服务器边缘计算的最新发展和创新成果,引发与会者热烈关注。 re:Invent的核心主题是…

九、W5100S/W5500+RP2040之MicroPython开发<HTTPOneNET示例>

文章目录 1. 前言2. 平台操作流程2.1 创建设备2.2 创建数据流模板 3. WIZnet以太网芯片4. 示例讲解以及使用4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 烧录验证 5. 注意事项6. 相关链接 1. 前言 在这个智能硬件和物联网时代,MicroPython和树莓派PICO正…

Kubernetes 的用法和解析 -- 7

k8s之共享存储pv&pvc 1 存储资源管理 在基于k8s容器云平台上,对存储资源的使用需求通常包括以下几方面: 1.应用配置文件、密钥的管理; 2.应用的数据持久化存储; 3.在不同的应用间共享数据存储; k8s的Volume抽象概…

Curl多线程https访问,崩溃问题修复

Curl: &#xfffd;&#xfffd;: SSL and multithread crash on windows, how to use mutex on windows? SSL and multithread crash on windows, how to use mutex on windows? From: mao mao <lmjrd_at_hotmail.com> Date: Fri, 25 Nov 2016 09:50:48 0000 Thank…

昨天下午学习的是mysql-约束条件 数据类型

常见的数据类型 整数 浮点型 日期 字符串文本类型 比如id后面要是int类型的 手机号就得是bigint 或 varchar 主键 primary key 自增 auto_increment 非空notnull 唯一约束 unique 参照refernces 用法 create database System; use System; create table stude…

【昆明*线上同步】最新ChatGPT/GPT4科研实践应用与AI绘图技术及论文高效写作

详情点击查看福利&#xff1a;【昆明*线上同步】最新ChatGPT/GPT4科研实践应用与AI绘图技术及论文高效写作 目标&#xff1a; 1、熟练掌握ChatGPT提示词技巧及各种应用方法&#xff0c;并成为工作中的助手。 2、通过案例掌握ChatGPT撰写、修改论文及工作报告&#xff0c;提供…

AI Native工程化:百度App AI互动技术实践

作者 | GodStart 导读 随着AI浪潮的兴起&#xff0c;越来越多的应用都在利用大模型重构业务形态&#xff0c;在设计和优化Prompt的过程中&#xff0c;我们发现整个Prompt测评和优化周期非常长&#xff0c;因此&#xff0c;我们提出了一种Prompt生成、评估与迭代的一体化解决方案…

java 非常好用的一个缓存(Google Guava的Cache)

基本每个web项目都少不了缓存&#xff0c;通常很时候都会选择redis作缓存&#xff0c;或者自己用map轻松实现&#xff0c;但上面这两种缓存有时满足不了需求&#xff0c;有时觉得redis作缓存有点重&#xff0c;而map手功实现又太轻或功能不足时&#xff08;缓存时过期实现&…

NB-IOT、4G-LTE信号优劣判定参考指标

名词释意 &#xff08;1&#xff09;RSRP&#xff1a;信号接收功率&#xff0c;反映当前路径信道损耗程度&#xff0c;主要作为小区覆盖的测量和小区重选重要依据. &#xff08;2&#xff09;RSRQ&#xff1a;信号接收质量&#xff0c;反映当前路径网络负荷及干扰变化点&#x…

【XML】TinyXML 详解

1、简介 优点&#xff1a; TinyXML 是一个简单、小型的 C XML 解析器&#xff0c;可以轻松集成到项目中。 TinyXML 解析 XML 文档&#xff0c;并根据该文档构建可读取、修改和保存的文档对象模型 (DOM) TinyXML 是在 ZLib 许可下发布的&#xff0c;因此可以在开源或商业代码中…

【Flink-Kafka-To-ClickHouse】使用 Flink 实现 Kafka 数据写入 ClickHouse

【Flink-Kafka-To-ClickHouse】使用 Flink 实现 Kafka 数据写入 ClickHouse 1&#xff09;导入相关依赖2&#xff09;代码实现2.1.resources2.1.1.appconfig.yml2.1.2.log4j.properties2.1.3.log4j2.xml2.1.4.flink_backup_local.yml 2.2.utils2.2.1.DBConn2.2.2.CommonUtils2.…

zynqmp Linux + 裸机 (A53-0 Linux,A53-1 2 3 裸机大数据量实时处理,R5-0 协议处理,R5-1 屏幕显示逻辑等)填坑笔记

fpga 和arm 采用预留内存的方式&#xff0c;采用neon 协处理器只能做到 250M/S 的速度&#xff0c;预留内存采用mmap的方式&#xff0c;当读取内存页的时候采用缺页中断的方式&#xff0c;导致速度拖沓而且预留内存没有进行Linux系统的内存管理&#xff08;在系统内 memcpy的速…