macOS 下 Python lxml 库安装后依然运行 “ No module named 'lxml' ”

2019-09-11 22:15:12 +08:00
 leverestfish

自闭了,求助,如图所示

macOS python3,在终端用 pip3 命令装的,装完之后 import lxml 还是 No module named 'lxml'

4208 次点击
所在节点    问与答
14 条回复
ysc3839
2019-09-11 22:22:37 +08:00
执行
```
pip3 -V
which python3
```
看看?
zer
2019-09-11 23:08:11 +08:00
用 venv 吧
mzfenng
2019-09-11 23:23:19 +08:00
用 python3 -m pip install lxml 安装
ipwx
2019-09-11 23:35:40 +08:00
3L 正解。
trys1
2019-09-11 23:38:54 +08:00
venv 或 pyenv 了解一下
ericls
2019-09-11 23:45:46 +08:00
which python?
ynyounuo
2019-09-12 04:35:00 +08:00
pip3 的 shebang 指向的和你 PATH 指向的 python3 可能不同,head -2 $(which pip3) 看一下咯
leverestfish
2019-09-12 08:02:51 +08:00
@ynyounuo #!/usr/local/opt/python/bin/python3.7
请问这是什么意思? 我系统里还有第二个 python 解释器吗
ynyounuo
2019-09-12 08:20:57 +08:00
@leverestfish
可以用 readlink -f 看看 /usr/local/bin/python3 和 /usr/local/opt/python/bin/python3.7 是否为同一个 python 的软链
leverestfish
2019-09-12 08:33:21 +08:00
@ynyounuo 我看了下两个好像不一样,一个是 homebrew 装的,一个是我直接在官网下载后安装的
另外这个命令我用不来,Google 了也没搞明白。
gIrl1990
2019-09-12 12:54:11 +08:00
```text
for v in "/usr/bin" "/usr/local/bin" "/usr/local/opt"
find -E "$v" -regex ".*/python[^.]?([0-9]\.?)*.?"|xargs gls -lF --color
end

for v in "/usr/bin" "/usr/local/bin" "/usr/local/opt"
find -E "$v" -regex ".*/pip[^.]?([0-9]\.?)*.?"|xargs gls -lF --color
end
```

你可以试下,搜下 python,然后看看 pip 是否对应 python
注释 1. 上面是 fish shell 的命令,大致明白意思就是
leverestfish
2019-09-12 16:35:45 +08:00
@gIrl1990 我大概理解,但我不会用 fish shell
gIrl1990
2019-09-12 16:58:36 +08:00
@leverestfish 其实就是在这 3 个目录"/usr/bin" "/usr/local/bin" "/usr/local/opt"里面找满足规则的 python/pip 的文件,它可能是个 executable file 也可能是个链接或者文件夹(一般来说不会放到其它目录里;如果是链接的话,可以使用 greadlink -f 递归找到最终文件)。 这样就知道了共有哪几个 Python

pip 的话就是个可执行文本,参考前人说的,head -n 2 看下文件头,看它指向哪个 python 就可以了

gls, greadlink 都是 gnu coreutils 的,和 macos bad 对应的命令是有些许区别的。通过 brew install coreutils 安装
gIrl1990
2019-09-25 12:43:56 +08:00
@leverestfish 那就给你来个 bash 的吧
```bash
#!/bin/bash
IFS=":" read -r -a REPLY <<< "$PATH"
for x in "python" "pip"; do
for v in "${REPLY[@]}"; do
find "$v" -regex ".*/${x}[^\-]*" -exec gls -lFhAv --color {} \;
done
done
```

ps: https://github.com/koalaman/shellcheck/wiki/SC2207

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/600188

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX