gpt4 book ai didi

python - 在 Ubuntu 上为 Python3 而不是 Python2 安装库

转载 作者:行者123 更新时间:2023-12-04 19:17:18 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to install python3 version of package via pip on Ubuntu?

(18 个回答)


6年前关闭。




我的问题很简单。我要安装PyQuery使用 pip .所以我在命令行中写了以下内容:

sudo pip install PyQuery

它说 PyQuery安装成功。然后,如果我在命令行中编写:
python3 test.py

据说不识别 import PyQuery .但是,如果我替换 python3python ,则不会出现此错误消息。

我想问题是 pip 为 Python2 而不是 Python3 安装模块,但我不知道如何改变它。

Python2 version: 2.7 Python3 version: 3.4

最佳答案

TL;博士

每个安装的 python 版本都有自己的 pip 可执行文件版本(至少对于 ubuntu),例如python2有相关pip2 , python3 - pip3 .
pythonpip只是默认值,简单链接到 python2python3二进制。

所以你可以使用

pip3 install <package> 

在大多数情况下,当您需要为 python 3 安装包时。

让我们看看它是如何工作的
pip不是二进制的!

通过执行以下命令查看运行 pip python 包的命令:
$ less $(which pip)

输出将是这样的:
#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==1.5.4','console_scripts','pip'
__requires__ = 'pip==1.5.4'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
sys.exit(
load_entry_point('pip==1.5.4', 'console_scripts', 'pip')()
)

实际上,linux 中的大多数命令都不是二进制文件。其中很多只是有用的绑定(bind),就像 pip 一样。
$ ls -lah $(which pip)
-rwxr-xr-x 1 root root 281 чер 17 00:52 /usr/bin/pip

您可以找到 simple description of how executable scripts works on linux .它是为 bash 脚本编写的,但适用于任何解释语言:python、javascript、ruby 等。

那么,如果 pip 不是二进制的,那么这个脚本是做什么的呢?

RTFM about pip ,简而言之,pip 只是一个 python 模块,可以像任何其他 python 模块一样执行,查看 PEP 0338 ,例如
$ python -m pip install <package>

与命令相同的效果
$ pip install <package>

概括
pip是使用传递参数运行 pip 包的 python 脚本。 $ which pip 中 python 版本的相对包文件。如果你打开你的 pip 脚本,你会发现它与哪个 python 版本相关。

就我而言,它是:
$ head -1 $(which pip)
#!/usr/bin/python
$ /usr/bin/python -V
Python 2.7.6

或单线
$ $(expr substr `head -1 $(which pip)` 3 100) -V
Python 2.7.6

关于python - 在 Ubuntu 上为 Python3 而不是 Python2 安装库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33057589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com