推 chin2049: 感謝H大的回覆 有些頭緒了 05/07 09:43
※ 引述《chin2049 (YesOrNo)》之銘言:
這篇我再額外說明一下上一篇回文和影片中沒有提到的部分
就是關於 Unix-like 文件系統的一些內容......
## 關於 `/usr/bin` 和 `/usr/local/bin`
- `/usr/bin`: 存放屬於作業系統層級,透過套件管理工具所安裝的
二進制執行程式(executable binary program)
- `/usr/local/bin`: 存放不屬於作業系統層級,由本機管理員或
自行透過編譯構建的二進制執行程式
---
[註]: macOS 作業系統並沒有官方提供的套件管理工具,目前被廣泛
使用的是 Homebrew 這款工具,這款工具背後的原理實際上是
將檔案安裝存放於 `../Cellar/...` 目錄,並透過軟鏈接的
方式再將 `/usr/local/bin` 下的鏈接指過去
## macOS 下的 Python 和 Python3
如同前一篇回文中影片提及的,由於 Python2 升級到 Python3 所遺留
的歷史共業問題,在目前的 macOS 為了得以讓基於 Python2 所開發的
腳本得以正常運行,一個乾乾淨淨的作業系統會有以下:
- `/usr/bin/python` 指向 `../../System/Library/.../python2.7/`
- `/usr/bin/python2` 指向 `../../System/Library/.../python2.7/`
- `/usr/bin/python3` 就是 python3 本人
你可以透過以下命令獲取資訊:
```bash
$ ls -l /usr/bin | grep python
```
換句話說 macOS 作業系統自帶的 Python 會分別位在以下路徑:
1. `/System/Library/Frameworks/Python.framework`
2. `/usr/bin/python`
根據 Python 官方文件的說法,並不建議變更、刪除這兩個路徑下的內
容物......
REF: https://docs.python.org/3/using/mac.html
---
[註]: 你位在上述 1 路徑下的 Python3 很有可能是某些軟體需要或
不小心自行安裝的
## 在 macOS 下建議的 Python 開發環境安裝方法
首先在下述選項依個人需求擇一,如果經常需有有一個進行統計或科學運算的環
境,建議直接以 2 為主:
1. 透過 Homebrew 安裝 Python3 保證在 `/usr/local/bin` 下能有一
個指向 `../Cellar/` 的 Python3 版本
2. 安裝 Anaconda 所提供的 Python3,但不將其 Python 路徑放入環境
變數,只需要將 conda 放入,必要時透過 conda activate 啟用
所有個別專案目錄下,透過環境管理工具創建虛擬環境。上述的安裝的 Python
只用來進行日常快速執行腳本和安裝環境管理工具,如 venv, pyenv, pipenv,
poetry, conda... 等。
除非特殊必要,我一般建議遵循官方文件說的使用已經在 Python3 之後被納入標準函數庫中的 venv 來創建虛擬環境:
```bash
# 創建虛擬環境
$ python3 -m venv env
# 啟用虛擬環境
$ source env/bin/activate
```
在啟用環境後,使用 pip 的路徑就會是環境下了。
: 作業系統: macOS Big sur
: 軟體:VS Code
: Terminal: zsh
: 資訊如下
: which python
: -> /usr/bin/python
: python —version
: -> Python 2.7.16
這是系統為了兼容舊版本的程式仍保留的 Python2 直譯器。
: which pip3
: -> /Library/Frameworks/Python.framework/Versions/3.9/bin/pip3
: 我用pip3 install pyptt
: -> Requirement already satisfied: pyptt in /Library/Frameworks/Python.framewor
在沒有啟用環境的狀況下,不建議自行使用 pip 和 pip3 安裝額外套件…
: 上面這個訊息不太對勁
: 有使用code runner extension
: 在 configuation裡面設定
: "python.pythonPath": "/usr/local/bin/python3"
全局設定可以這樣設定,供運行一些簡單腳本使用。但開發專案時不建議!
另外 Code Runner 可以有自己的設定
: 主程式只打二行:
: import sys
: from PyPtt import PTT
: 結果如下:
: mportError: No module named PyPtt
: 用了大半天 不知道該怎麼設定
: 再請教版友
建議為你要開發的程式創建專案資料夾,並在專案資料夾下,參考我文中的指令建立並啟用虛擬環境…
確定 pip 指令是吃到虛擬環境的之後,再透過 pip 安裝套件。並在 VS Code 裡選擇使用虛擬環境的那個直譯器…
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.159.144 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1620296175.A.E3B.html
※ 編輯: Hsins (111.71.118.23 臺灣), 05/06/2021 18:37:28