搜尋
首頁後端開發Python教學Mac環境下怎麼設定預設Python 版本?

Mac環境下怎麼設定預設Python 版本?

在macOS上使用python3的方法有很多,但是有一种比其他的方法都好的方法。

不该做什么

我第一个关于让python3成为系统默认的python版本的想法是,删除旧版本的python然后将新版本的python添加进去:

# 我认为这个方法会起作用 # 首先, 我先找到旧版本python的文件 $ which python /usr/bin/python # 然后, 我将它移动到一个其他的位置 $ sudo mv /usr/bin/python /usr/bin/pythzuihouon2 # 最后, 我将新版本python的文件移动到之前的路径 $ sudo mv $PATHTOBINARY/python3 /usr/bin/python

该方法虽然使用了Python主要版本之间通常执行的操作 /usr/bin/ ,但是我很快就发现了这是一个错误的方法:

$ sudo mv /usr/bin/python /usr/bin/python2 mv: rename /usr/bin/python to /usr/bin/python2: Operation not permitted

值得庆幸的是, macOS保护了我,使我不至于破坏一些我不完全理解的东西。进一步的研究证明,这正是我们不应该做的事情。

我们可以做什么(也不应该做什么)

现在我们知道什么是不应该做的,那么让我们看看我们可以做些什么。当我们考虑macOS上应用程序的常见安装模式时,有几个选项。

使用Python3作为macOS的默认安装模式

Python的网站有一个macOS Python3安装程序我们可以下载和使用。如果使用包安装,则/usr/local/bin/中将提供可用的python3

别名是必须的,因为存储在/usr/bin/中的Python二进制文件无法更改。别名的优点是它可以具体指定我们的命令行所使用的shell。由于我默认使用zsh,所以我将以下内容放入.zshrc文件中:

$ echo "alias python=/usr/local/bin/python3.7" >> ~/.zshrc

如果您使用的是默认的bash shell,您可以将此相同的文本追加到您的.bashrc

$ echo "alias python=/usr/local/bin/python3.7" >> ~/.bashrc

该策略有效,但是对于Python将来的更新并不是理想的选择。这意味着我们必须记住要检查网站并下载新文件,因为Python不包含用于更新的命令行方式。

用Homebrew管理Python 3

Homebrew 项目提供了许多人所依赖的macOS的免费开源软件包管理器。它提供了Apple用户类似于apt-get *或yum *的功能。如果您是Homebrew用户,则可能已经安装了Python。要快速检查,请运行:

$ brew list | grep python

如果Python在命令下显示,则表明已安装。让我们看一下它是什么版本:

$ brew info python python: stable 3.7.3 (bottled), HEAD Interpreted, interactive, object-oriented programming language https://www.python.org/ /usr/local/Cellar/python/3.7.2_1 (8,437 files, 118MB) * ## 不包含其他输出 ##

好的,太好了! Homebrew维护人员已将默认的Python bottle更新为指向最新版本。由于Homebrew维护者在更新发行版方面比我们大多数人更可靠,因此我们可以通过以下命令使用Homebrew的Python 3版本:

$ brew update && brew upgrade python

现在,我们要将别名(从上面)指向Homebrew管理的Python副本:

# 如果你添加了上面的别名,请使用文本编辑器将行更新为以下内容 alias python=/usr/local/bin/python3

确保上面的路径指向我们环境中Homebrew安装python的位置,我们可以运行brew info python查找路径信息。

这种使用Homebrew管理我们的Python环境的方法是一个很好的起点,在当时对我来说很有意义。

假若我们依旧需要Python 2呢?

对任何一个新的python人员来说从python3开始都是有意义的。但是,我们那些仍然需要python2的人-例如,为了给仅在python2中可用的python项目做贡献-可以继续用macOS下默认在/usr/bin/python可用的python二进制文件:

$ /usr/bin/python >>> print("这次运行仍然有效!") 这次运行仍然有效!

Homebrew是如此的美妙,它甚至未python2提供了一种不同的方式:

# 如果你需要Homebrew's Python 2.7 运行 $ brew install python@2

在任何时候,我们可以从我们的shell的配置文件中移除别名,退出使用系统默认拷贝的Python。

不要忘记更新pip到pip3!

** pip 命令是专门用于Python软件包的默认软件包管理器。尽管我们将默认的Python命令更改为版本3,但如果在以前的版本中,我们必须单独对 pip **命令起别名。首先,我们需要检查使用的版本:

# 注意这是一个大写V (不是小写) $ pip -V pip 19.0.3 from /Library/Python/2.7/site-packages/pip-19.0.3-py2.7.egg/pip (python 2.7)

为了确保我们正在安装的包适配我们新版本的python,我们将会用另外一个别名指向pip的适配版本。因为在当前环境下我们正在使用Homebrew作为我们的包管理器,我们知道安装Python3的时候他会安装pip3.默认路径应该与Python3相同,但是我们可以通过让shell去寻找的方式来确保这一点:

$ which pip3 /usr/local/bin/pip3

现在我们知道了位置,我们将会添加它到shell的配置文件中,就像我们之前做的那样:

$ echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc  # or for Bash $ echo "alias pip=/usr/local/bin/pip3" >> ~/.bashrc

最后我们可以通过打开一个新的shell或者重置我们当前的shell并查看指向的内容来确认运行中的pip指向的是pip3.

# This command reloads the current shell without exiting the session # Alternatively, exit the shell and start a new one $ exec $0 # Now we can look to see where pip points us $ which pip pip: aliased to /usr/local/bin/pip3

我们可以避免使用Homebrew来更新pip,但是那需要Python文档中的一个较长的教程

我们应该做什么

当要求对本文进行技术审查时,Moshe Zadka给我一个警告,即我的解决方案可能导致运行哪个Python的想法过于不可靠,而这个想法过于依赖外壳程序加载别名。我知道Moshe熟悉Python,但我不知道他是许多 Python教程的作者,还是即将出版的有关macOS上Python开发的书。他遵循一项核心原则,帮助40位同事在macOS系统上安全且一致地开发Python:

“所有Python开发的基本前提是永远不要使用系统Python。您不要 Mac OS X的’默认Python’为’python3’。您永远不必关心默认的Python。”

我们该怎样停止关心默认值呢?Moshe推荐使用 pyenv去管理python的环境(想对配置pyenv有一个更深入的了解,看这篇文章)。该工具将管理Python的多个版本,并被描述为”简单,易懂且遵循Unix的一站式工具传统,可以很好地完成工作。”

虽然有其他安装选项可以用,但最简单的方式是从Homebrew开始:

$ brew install pyenv ?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

现在让我们安装最新的Python版本(截至撰写本文时为3.7.3):

$ pyenv install 3.7.3 python-build: use openssl 1.0 from homebrew python-build: use readline from homebrew Downloading Python-3.7.3.tar.xz... -> https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz Installing Python-3.7.3... ## 不包括进一步的输出 ##

现在Python3已经通过pyenv安装了,我们想为pyenv环境设置它为全局默认的版本:

$ pyenv global 3.7.3 # 验证它生效了 $ pyenv version 3.7.3 (set by /Users/mbbroberg/.pyenv/version)

pyenv的强大之处在于它对我们shell路径的控制。为了使其正常工作,我们需要将以下内容添加到我们的配置文件中(对我来说是.zshrc *,可能对您来说是.bash_profile *):

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc

执行该命令后,我们的点文件(对于zsh为.zshrc **,对于Bash为.bash_profile **)应包括以下行:

if command -v pyenv 1>/dev/null 2>&1; then   eval "$(pyenv init -)" fi

我们还需要删除我们在以上部分中使用的别名,因为它们会阻止正确使用pyenv。删除它们后,我们可以确认pyenv正在管理我们的Python 3版本:

#我先重置当前的shell # 或者,启动一个新的终端实例 $ exec $0 $ which python /Users/mbbroberg/.pyenv/shims/python $ python -V Python 3.7.3 $ pip -V pip 19.0.3 from /Users/mbbroberg/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pip (python 3.7)

现在我们可以确定我们正在使用Python 3.7.3,并且pip会与之一起更新,而无需在版本之间进行任何手动别名。使用Moshe的建议来使用版本管理器(pyenv),使我们能够轻松地接受将来的升级,而不必对在给定时间运行的Python感到困惑。

##从一开始就做

如果您刚刚开始在macOS上进行Python开发,请进行必要的配置,以确保从一开始就使用正确的Python版本。安装Python 3(带或不带Homebrew)以及使用别名可以让您开始编码,但是从长远来看,这并不是一个好的策略。使用pyenv作为简单的版本管理解决方案可以让您有一个好的开始。

英文原文地址:https://opensource.com/article/19/5/python-3-default-mac

译文地址:https://learnku.com/python/t/52007

【相关推荐:Python3视频教程

以上是Mac環境下怎麼設定預設Python 版本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:learnku。如有侵權,請聯絡admin@php.cn刪除
Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎麼辦?Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎麼辦?Apr 02, 2025 am 07:12 AM

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具