作者Hsins (迅雷不及掩耳盗铃)
看板Python
标题Re: [问题] pip3安装pyptt 执行找不到模组
时间Thu May 6 18:16:13 2021
※ 引述《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://webptt.com/cn.aspx?n=bbs/Python/M.1620296175.A.E3B.html
※ 编辑: Hsins (111.71.118.23 台湾), 05/06/2021 18:37:28
1F:推 chin2049: 感谢H大的回覆 有些头绪了 05/07 09:43