成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

Mac環(huán)境下怎么設(shè)置默認(rèn)Python 版本?

Mac環(huán)境下怎么設(shè)置默認(rèn)Python 版本?

程序員必備接口測(cè)試調(diào)試工具:立即使用
Apipost = Postman + Swagger + Mock + Jmeter
Api設(shè)計(jì)、調(diào)試、文檔、自動(dòng)化測(cè)試工具
后端、前端、測(cè)試,同時(shí)在線協(xié)作,內(nèi)容實(shí)時(shí)同步

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

不該做什么

我第一個(gè)關(guān)于讓python3成為系統(tǒng)默認(rèn)的python版本的想法是,刪除舊版本的python然后將新版本的python添加進(jìn)去:

# 我認(rèn)為這個(gè)方法會(huì)起作用 # 首先, 我先找到舊版本python的文件 $ which python /usr/bin/python # 然后, 我將它移動(dòng)到一個(gè)其他的位置 $ sudo mv /usr/bin/python /usr/bin/pythzuihouon2 # 最后, 我將新版本python的文件移動(dòng)到之前的路徑 $ sudo mv $PATHTOBINARY/python3 /usr/bin/python
登錄后復(fù)制

該方法雖然使用了Python主要版本之間通常執(zhí)行的操作 /usr/bin/ ,但是我很快就發(fā)現(xiàn)了這是一個(gè)錯(cuò)誤的方法:

$ sudo mv /usr/bin/python /usr/bin/python2 mv: rename /usr/bin/python to /usr/bin/python2: Operation not permitted
登錄后復(fù)制

值得慶幸的是, macOS保護(hù)了我,使我不至于破壞一些我不完全理解的東西。進(jìn)一步的研究證明,這正是我們不應(yīng)該做的事情。

我們可以做什么(也不應(yīng)該做什么)

現(xiàn)在我們知道什么是不應(yīng)該做的,那么讓我們看看我們可以做些什么。當(dāng)我們考慮macOS上應(yīng)用程序的常見(jiàn)安裝模式時(shí),有幾個(gè)選項(xiàng)。

使用Python3作為macOS的默認(rèn)安裝模式

Python的網(wǎng)站有一個(gè)macOS Python3安裝程序我們可以下載和使用。如果使用包安裝,則/usr/local/bin/中將提供可用的python3。

別名是必須的,因?yàn)榇鎯?chǔ)在/usr/bin/中的Python二進(jìn)制文件無(wú)法更改。別名的優(yōu)點(diǎn)是它可以具體指定我們的命令行所使用的shell。由于我默認(rèn)使用zsh,所以我將以下內(nèi)容放入.zshrc文件中:

$ echo "alias python=/usr/local/bin/python3.7" >> ~/.zshrc
登錄后復(fù)制

如果您使用的是默認(rèn)的bash shell,您可以將此相同的文本追加到您的.bashrc

$ echo "alias python=/usr/local/bin/python3.7" >> ~/.bashrc
登錄后復(fù)制

該策略有效,但是對(duì)于Python將來(lái)的更新并不是理想的選擇。這意味著我們必須記住要檢查網(wǎng)站并下載新文件,因?yàn)镻ython不包含用于更新的命令行方式。

用Homebrew管理Python 3

Homebrew 項(xiàng)目提供了許多人所依賴的macOS的免費(fèi)開(kāi)源軟件包管理器。它提供了Apple用戶類似于apt-get *或yum *的功能。如果您是Homebrew用戶,則可能已經(jīng)安裝了Python。要快速檢查,請(qǐng)運(yùn)行:

$ brew list | grep python
登錄后復(fù)制

如果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) * ## 不包含其他輸出 ##
登錄后復(fù)制

好的,太好了! Homebrew維護(hù)人員已將默認(rèn)的Python bottle更新為指向最新版本。由于Homebrew維護(hù)者在更新發(fā)行版方面比我們大多數(shù)人更可靠,因此我們可以通過(guò)以下命令使用Homebrew的Python 3版本:

$ brew update && brew upgrade python
登錄后復(fù)制

現(xiàn)在,我們要將別名(從上面)指向Homebrew管理的Python副本:

# 如果你添加了上面的別名,請(qǐng)使用文本編輯器將行更新為以下內(nèi)容 alias python=/usr/local/bin/python3
登錄后復(fù)制

確保上面的路徑指向我們環(huán)境中Homebrew安裝python的位置,我們可以運(yùn)行brew info python查找路徑信息。

這種使用Homebrew管理我們的Python環(huán)境的方法是一個(gè)很好的起點(diǎn),在當(dāng)時(shí)對(duì)我來(lái)說(shuō)很有意義。

假若我們依舊需要Python 2呢?

對(duì)任何一個(gè)新的python人員來(lái)說(shuō)從python3開(kāi)始都是有意義的。但是,我們那些仍然需要python2的人-例如,為了給僅在python2中可用的python項(xiàng)目做貢獻(xiàn)-可以繼續(xù)用macOS下默認(rèn)在/usr/bin/python可用的python二進(jìn)制文件:

$ /usr/bin/python >>> print("這次運(yùn)行仍然有效!") 這次運(yùn)行仍然有效!
登錄后復(fù)制

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

# 如果你需要Homebrew's Python 2.7 運(yùn)行 $ brew install python@2
登錄后復(fù)制

在任何時(shí)候,我們可以從我們的shell的配置文件中移除別名,退出使用系統(tǒng)默認(rèn)拷貝的Python。

不要忘記更新pip到pip3!

** pip 命令是專門(mén)用于Python軟件包的默認(rèn)軟件包管理器。盡管我們將默認(rèn)的Python命令更改為版本3,但如果在以前的版本中,我們必須單獨(dú)對(duì) pip **命令起別名。首先,我們需要檢查使用的版本:

# 注意這是一個(gè)大寫(xiě)V (不是小寫(xiě)) $ pip -V pip 19.0.3 from /Library/Python/2.7/site-packages/pip-19.0.3-py2.7.egg/pip (python 2.7)
登錄后復(fù)制

為了確保我們正在安裝的包適配我們新版本的python,我們將會(huì)用另外一個(gè)別名指向pip的適配版本。因?yàn)樵诋?dāng)前環(huán)境下我們正在使用Homebrew作為我們的包管理器,我們知道安裝Python3的時(shí)候他會(huì)安裝pip3.默認(rèn)路徑應(yīng)該與Python3相同,但是我們可以通過(guò)讓shell去尋找的方式來(lái)確保這一點(diǎn):

$ which pip3 /usr/local/bin/pip3
登錄后復(fù)制

現(xiàn)在我們知道了位置,我們將會(huì)添加它到shell的配置文件中,就像我們之前做的那樣:

$ echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc  # or for Bash $ echo "alias pip=/usr/local/bin/pip3" >> ~/.bashrc
登錄后復(fù)制

最后我們可以通過(guò)打開(kāi)一個(gè)新的shell或者重置我們當(dāng)前的shell并查看指向的內(nèi)容來(lái)確認(rèn)運(yùn)行中的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
登錄后復(fù)制

我們可以避免使用Homebrew來(lái)更新pip,但是那需要Python文檔中的一個(gè)較長(zhǎng)的教程

我們應(yīng)該做什么

當(dāng)要求對(duì)本文進(jìn)行技術(shù)審查時(shí),Moshe Zadka給我一個(gè)警告,即我的解決方案可能導(dǎo)致運(yùn)行哪個(gè)Python的想法過(guò)于不可靠,而這個(gè)想法過(guò)于依賴外殼程序加載別名。我知道Moshe熟悉Python,但我不知道他是許多 Python教程的作者,還是即將出版的有關(guān)macOS上Python開(kāi)發(fā)的書(shū)。他遵循一項(xiàng)核心原則,幫助40位同事在macOS系統(tǒng)上安全且一致地開(kāi)發(fā)Python:

“所有Python開(kāi)發(fā)的基本前提是永遠(yuǎn)不要使用系統(tǒng)Python。您不要 Mac OS X的’默認(rèn)Python’為’python3’。您永遠(yuǎn)不必關(guān)心默認(rèn)的Python。”

我們?cè)撛鯓油V龟P(guān)心默認(rèn)值呢?Moshe推薦使用 pyenv去管理python的環(huán)境(想對(duì)配置pyenv有一個(gè)更深入的了解,看這篇文章)。該工具將管理Python的多個(gè)版本,并被描述為”簡(jiǎn)單,易懂且遵循Unix的一站式工具傳統(tǒng),可以很好地完成工作?!?/p>

雖然有其他安裝選項(xiàng)可以用,但最簡(jiǎn)單的方式是從Homebrew開(kāi)始:

$ brew install pyenv ?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB
登錄后復(fù)制

現(xiàn)在讓我們安裝最新的Python版本(截至撰寫(xiě)本文時(shí)為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... ## 不包括進(jìn)一步的輸出 ##
登錄后復(fù)制

現(xiàn)在Python3已經(jīng)通過(guò)pyenv安裝了,我們想為pyenv環(huán)境設(shè)置它為全局默認(rèn)的版本:

$ pyenv global 3.7.3 # 驗(yàn)證它生效了 $ pyenv version 3.7.3 (set by /Users/mbbroberg/.pyenv/version)
登錄后復(fù)制

pyenv的強(qiáng)大之處在于它對(duì)我們shell路徑的控制。為了使其正常工作,我們需要將以下內(nèi)容添加到我們的配置文件中(對(duì)我來(lái)說(shuō)是.zshrc *,可能對(duì)您來(lái)說(shuō)是.bash_profile *):

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; thenn  eval "$(pyenv init -)"nfi' >> ~/.zshrc
登錄后復(fù)制

執(zhí)行該命令后,我們的點(diǎn)文件(對(duì)于zsh為.zshrc **,對(duì)于Bash為.bash_profile **)應(yīng)包括以下行:

if command -v pyenv 1>/dev/null 2>&1; then   eval "$(pyenv init -)" fi
登錄后復(fù)制

我們還需要刪除我們?cè)谝陨喜糠种惺褂玫膭e名,因?yàn)樗鼈儠?huì)阻止正確使用pyenv。刪除它們后,我們可以確認(rèn)pyenv正在管理我們的Python 3版本:

#我先重置當(dāng)前的shell # 或者,啟動(dòng)一個(gè)新的終端實(shí)例 $ 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)
登錄后復(fù)制

現(xiàn)在我們可以確定我們正在使用Python 3.7.3,并且pip會(huì)與之一起更新,而無(wú)需在版本之間進(jìn)行任何手動(dòng)別名。使用Moshe的建議來(lái)使用版本管理器(pyenv),使我們能夠輕松地接受將來(lái)的升級(jí),而不必對(duì)在給定時(shí)間運(yùn)行的Python感到困惑。

##從一開(kāi)始就做

如果您剛剛開(kāi)始在macOS上進(jìn)行Python開(kāi)發(fā),請(qǐng)進(jìn)行必要的配置,以確保從一開(kāi)始就使用正確的Python版本。安裝Python 3(帶或不帶Homebrew)以及使用別名可以讓您開(kāi)始編碼,但是從長(zhǎng)遠(yuǎn)來(lái)看,這并不是一個(gè)好的策略。使用pyenv作為簡(jiǎn)單的版本管理解決方案可以讓您有一個(gè)好的開(kāi)始。

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

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

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
日本成AⅤ人片日本伦| 在线中文新版最新版在线| 成都私人家庭影院| 精品国产亚洲AV麻豆尤物| 日本丰满人妻熟妇BBBBB| 亚洲伊人久久综合成人| 国产成人无码H在线观看网站| 乱码午夜-极品国产内射| 无码中文字幕在线播放2| 99久热RE在线精品视频| 精品久久亚洲中文字幕| 四虎国产成人永久精品免费| 中文字字幕在线中文乱码| 国内精品久久久久久久小说| 日本做受高潮好舒服视频| 伊人久久精品无码AV一区| 国产偷久久久精品专区| 日本久久99成人网站| 又湿又紧又大又爽A视频男| 国产做出在线 | 传媒麻豆| 日韩精品无码一区二区忘忧草| 伊人伊成久久人综合网| 国产真实乱对白精彩| 色欲ΑV一区二区三区天美传媒| 2021网站无需下载急急急| 精品人妻无码一区二| 无码精品黑人一区二区三区 | 国产精品YY9299在线观看| 欧美人与人动人物2020| 亚洲综合无码一区二区三区| 国内少妇高潮嗷嗷叫在线播放| 色欲av无码爆乳亚洲区一二| CAOPORN国产精品免费视频| 久久久久久久久久国产精品免费| 亚洲AⅤ无码专区在线观看Q| 乖宝真紧H嘶爽老子H| 人妻精油按摩BD高清中文字幕 | 97婷婷狠狠成为人免费视频| 久久精品成人亚洲另类欧美| 亚洲AV秘 无码一区二区三密桃 | 亚洲国产精品无码第一区二区三区 | 含着她的花蒂啃咬高潮| 特大巨黑吊XXXX高潮| 成 人 免费 黄 色 网站视频| 欧美XXXX做受视频| 在线播放无码后入内射少妇| 久久精品国产亚洲AV日韩 | 亚洲一成人精品无码一区二区三区| 国产强伦姧在线观看无码| 双腿扒开调教羞辱惩罚视频| 超碰成人人人做人人爽| 欧美兽交YOYO| AV成人片无码夜色AV大胸| 免费一本色道久久一区| 在线精品亚洲观看不卡欧| 久久99精品久久久久久2021| 亚洲国产区男人本色| 韩国三级大乳在线观看| 香港三日本三级少妇三级2021 | 人人妻人人澡人人爽人人正品| 99精产国品一二产区在线| 免费女人18毛片A毛片视频| 在线观看亚洲AV日韩A∨| 久久午夜无码免费| 一本无码人妻在中文字幕免费| 久久精品国产亚洲AV麻豆小说| 亚洲色婷婷综合久久| 久久99精品久久久久麻豆| 亚洲男人AV天堂男人社区| 精品国产一区二区三区无码| 亚洲精品无码专区久久| 精品一区二区三区在线成人| 亚洲欧洲无卡二区视頻| 久久国产精品二国产精品| 亚洲伊人久久综合| 久久无码AV中文出轨人妻| 一本久道综合在线无码88| 久久香蕉国产线看观看亚洲小说| 亚洲综合色丁香婷婷六月图片| 久久久WWW免费人成精品| 一本一道久久综合狠狠老| 久久中文字幕无码中文字幕有码 | 99久久无色码中文字幕人妻| 欧美巨大XXXX做受| 啊轻点灬大JI巴太粗太长在线了| 人与动人物XXXXAV片| 成人无码专区免费播放三区| 少妇人妻精品一区二区| 国产精品JIZZ在线观看无码 | 国产亚洲人成在线播放| 亚洲成AV人片在WWW色猫咪| 精品国产乱码久久久久软件| 亚洲伊人成无码综合网| 麻花传媒免费网站在线观看| 99久久99久久久精品齐齐综合| 欧美日本操逼视频| 成人精品一二三区| 污的你下面一直滴水的句子| 国产综合久久久久| 野花高清影视免费观看西瓜| 免费国产无人区码卡二卡3卡| FREE性欧美╳╳╳HD| 日韩精品一区二区三区中文 | 99精品国产福久久久久久| 人妻 偷拍 无码 中文字幕| 夫妇联欢会回不去的夜晚| 吸头AXYGEN日本| 久久久不卡国产精品一区二区| 60老妇VIDEOXXX| 日韩精品无码AV中文无码版| 国产老熟女八AV| 亚洲人成无码网站在线观看野花| 免费播放片高清在线视频| 波多野结衣在线观看AV| 无码日韩精品一区二区免费暖暖| 精品国模一区二区三区| 中美日韩精品激情无码AV| 日本XX爽21护士| 国产日产欧产精品品不卡| 夜里十大禁用APP软件最新章节| 欧美性巨大╳╳╳╳╳高跟鞋 | 国产午夜亚洲精品理论片八戒| 亚洲自偷自拍另类小说| 欧洲亚洲国产成人综合色婷婷| 国产成人无码18禁午夜福利免费| 亚洲精品无码久久久久不卡| 欧美 日韩 国产 成人 在线观 | 亚洲精品成人无码中文毛片| 内射口爆少妇麻豆| 国产成人A视频高清在线观看| 亚洲国产精品无码成人片久久| 男女裸体下面进入的免费视频 | 亚洲精品一品区二品区三品区| 农村妇女野外交性高清片| 高H乱好爽要尿了潮喷了学生| 亚洲精品乱码久久久久久自慰| 欧美激情精品久久久久久| 国产精品久久久久久免费软件| 野花高清在线电影观看免费视频| 日产无人区一线二线三线| 好男人观看免费视频2019| 91人人妻人人澡人人爽超污| 男友把舌头都伸进我的嘴巴里了| 粉嫩AV一二三区免费| 诱女偷伦初尝云雨H| 人妻少妇乱子伦精品无码专区电影| 国产精品久久久久久久久久久不卡 | 欧美性爱乱伦视频| 国产免费破外女真实出血视频 | 色悠久久久久综合网伊| 久久99精品久久久久久不卡| 爆乳JK美女脱内衣裸体网站| 亚洲AV一二三又爽又色又色| 欧美丰满熟妇XXXX| 国产欧美日韩一区二区加勒比| 最新精品国偷自产在线婷婷| 玩弄丰满熟妇XXXXX性60| 玩弄秘书的奶又大又软| 加勒比久久综合久久鬼色88| 2020无码专区人妻系列日韩| 脱岳裙子从后面挺进去| 乱人伦人妻中文字幕在线入口| 国产成年女人特黄特色毛片免| 影音先锋无码A∨男人资源站| 欧洲一卡2卡三卡4卡 乱码| 蜜桃女同一区二区免费AV哟| 久久99精品久久久久免费| 国产真实自在自偷| 亚洲一区二区三区乱码AⅤ| 三级韩国2017在线观看| 久久精品麻豆日日躁夜夜躁| 丰满少妇被猛烈进出69影院| 一本久道久久综合狠狠躁AV| 无码不卡AV东京热毛片| 女人被狂躁到高潮视频免费软件 | 亚洲人成网站在线在线观看| 色婷婷亚洲婷婷七月中文字幕 | 警察被两个混混脱裤玩J视频| 嗯快点别停舒服好爽受不了了 | 又爽又黄无遮挡高潮视频网站| 无码国产色欲XXXXX视频| 欧美ZC00O人与善交| 精品人妻一区二区三区乱码| 国产777涩在线 | 美洲| 337P日本欧洲亚洲大胆精筑| 亚洲国产成人AV网站| 少妇高潮无套内谢麻豆传| 妺妺跟我一起洗澡没忍住| 激情人妻另类人妻伦| 国产99视频精品免视看9| ASS少妇PICS粉嫩BBW| 亚洲色偷拍另类无码专区| 玩弄CHINESE丰满人妻VI| 欧美综合自拍亚洲图久青草| 久久人妻少妇偷人精品综合桃色| 国产美女遭强高潮网站| 成年女人毛片免费观看97| 中文字幕熟妇人妻在线视频| 亚洲成AV人最新无码| 天堂А√中文在线官网|