pip安装
pip 是 Python 包管理工具,用于安装和管理 Python 包。pip 是 Python 开发中不可或缺的工具,能够帮助开发者轻松地管理项目所需的各种库和依赖。无论是安装新包、升级现有包还是卸载不需要的包,pip 都提供了简单而强大的命令来完成这些任务。基本功能有:
安装包:从 Python 包索引(Python Package Index, PyPI)或其他源安装 Python 包。
pip install package_name
升级包:升级已安装的包到最新版本。
pip install --upgrade package_name
卸载包:卸载已安装的包。
pip uninstall package_name
列出已安装的包:显示所有已安装的包及其版本。
pip list
安装指定版本的包:可以安装特定版本的包。
pip install package_name==1.0.0
从文件安装:可以从 requirements.txt 文件安装包,该文件列出了所有需要的包及其版本。
pip install -r requirements.txt
查看包信息:查看某个包的详细信息。
pip show package_name
搜索包:在 PyPI 上搜索包。
pip search package_name
配置源:可以配置使用国内的镜像源来加快下载速度。
pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
在requirements.txt中配置源。
# Specify the primary package index URL
--index-url https://pypi.tuna.tsinghua.edu.cn/simple
# Specify additional package index URLs
--extra-index-url https://download.pytorch.org/whl/cpu
--extra-index-url https://developer.download.nvidia.com/compute/redist
absl-py==1.3.0
antlr4-python3-runtime==4.9.3
astunparse==1.6.3
cachetools==5.2.0
certifi==2022.9.24
charset-normalizer==2.1.1
dlio_profiler_py==0.0.3
flatbuffers==23.5.26
gast==0.4.0
google-auth==2.14.1
google-auth-oauthlib==0.7.0
- –index-url:设置主要的包索引 URL,pip 会首先从这个 URL 中搜索并安装包。
- –extra-index-url:设置额外的包索引 URL,如果在主要包索引 URL 中找不到包,pip 会从这些 URL 中搜索并安装包。
whl文件安装
没网的情况下,可以去pypi官网搜索需要的python库下载对应的whl文件进行安装。注意,此时下载的whl安装包一定要是符合自己Python版本和系统处理器位数的版本,下载的库名中cp39代表python3.9版本,想知道系统具体可以安装哪些标签的.whl文件,可以使用pip debug --verbose,兼容的文件标签就会显示。
[fakerth@localhost ~]$ pip debug --verbose
pip version: pip 23.0.1 from /usr/local/python38/lib/python3.8/site-packages/pip (python 3.8)
sys.version: 3.8.18 (default, Nov 17 2023, 18:40:57)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-20)]
sys.executable: /usr/local/python38/bin/python3.8
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: UTF-8
sys.platform: linux
sys.implementation:
name: cpython
'cert' config value: Not specified
REQUESTS_CA_BUNDLE: None
CURL_CA_BUNDLE: None
pip._vendor.certifi.where(): /usr/local/python38/lib/python3.8/site-packages/pip/_vendor/certifi/cacert.pem
pip._vendor.DEBUNDLED: False
vendored library versions:
CacheControl==0.12.11
colorama==0.4.6
distlib==0.3.6
distro==1.8.0
msgpack==1.0.4
packaging==21.3
platformdirs==2.6.2
pyparsing==3.0.9
pyproject-hooks==1.0.0
requests==2.28.2
certifi==2022.12.07
chardet==5.1.0
idna==3.4
urllib3==1.26.14
rich==12.6.0 (Unable to locate actual module version, using vendor.txt specified version)
pygments==2.13.0
typing_extensions==4.4.0 (Unable to locate actual module version, using vendor.txt specified version)
resolvelib==0.8.1
setuptools==44.0.0 (Unable to locate actual module version, using vendor.txt specified version)
six==1.16.0
tenacity==8.1.0 (Unable to locate actual module version, using vendor.txt specified version)
tomli==2.0.1
webencodings==0.5.1 (Unable to locate actual module version, using vendor.txt specified version)
Compatible tags: 543
cp38-cp38-manylinux_2_28_x86_64
cp38-cp38-manylinux_2_27_x86_64
cp38-cp38-manylinux_2_26_x86_64
cp38-cp38-manylinux_2_25_x86_64
cp38-cp38-manylinux_2_24_x86_64
cp38-cp38-manylinux_2_23_x86_64
cp38-cp38-manylinux_2_22_x86_64
cp38-cp38-manylinux_2_21_x86_64
cp38-cp38-manylinux_2_20_x86_64
cp38-cp38-manylinux_2_19_x86_64
cp38-cp38-manylinux_2_18_x86_64
cp38-cp38-manylinux_2_17_x86_64
cp38-cp38-manylinux2014_x86_64
cp38-cp38-manylinux_2_16_x86_64
cp38-cp38-manylinux_2_15_x86_64
cp38-cp38-manylinux_2_14_x86_64
cp38-cp38-manylinux_2_13_x86_64
cp38-cp38-manylinux_2_12_x86_64
cp38-cp38-manylinux2010_x86_64
cp38-cp38-manylinux_2_11_x86_64
cp38-cp38-manylinux_2_10_x86_64
cp38-cp38-manylinux_2_9_x86_64
cp38-cp38-manylinux_2_8_x86_64
cp38-cp38-manylinux_2_7_x86_64
cp38-cp38-manylinux_2_6_x86_64
cp38-cp38-manylinux_2_5_x86_64
cp38-cp38-manylinux1_x86_64
cp38-cp38-linux_x86_64
cp38-abi3-manylinux_2_28_x86_64
cp38-abi3-manylinux_2_27_x86_64
cp38-abi3-manylinux_2_26_x86_64
cp38-abi3-manylinux_2_25_x86_64
cp38-abi3-manylinux_2_24_x86_64
cp38-abi3-manylinux_2_23_x86_64
cp38-abi3-manylinux_2_22_x86_64
cp38-abi3-manylinux_2_21_x86_64
cp38-abi3-manylinux_2_20_x86_64
cp38-abi3-manylinux_2_19_x86_64
cp38-abi3-manylinux_2_18_x86_64
cp38-abi3-manylinux_2_17_x86_64
cp38-abi3-manylinux2014_x86_64
cp38-abi3-manylinux_2_16_x86_64
cp38-abi3-manylinux_2_15_x86_64
cp38-abi3-manylinux_2_14_x86_64
cp38-abi3-manylinux_2_13_x86_64
cp38-abi3-manylinux_2_12_x86_64
...
pypi官网:https://pypi.org/ 。搜索找到需要的库选择合适版本的whl文件下载安装即可。
pip install xxxx.whl
源码编译安装
pypi官网:https://pypi.org/ 。正常情况下用pip安装最方便,如果是没网络的环境使用whl文件,或者conda pack安装。使用源码编译安装python库个人感觉只会出现在由于外部环境缺少相关库导致pip安装失败,需要进一步确定问题发生的情况,比如mpi4py需要安装mpi,如果系统没有装mpi,则会导致mpipy4安装失败。
python setup.py build
python setup.py install
ChatGPT:
通过源码安装 Python 库有以下几个优势:
-
更高的可定制性
源码安装允许你对库进行定制和修改,以满足特定需求。例如,你可以修改库的代码,添加或修改功能,或者优化性能。 -
兼容性和依赖管理
通过源码安装,你可以确保库与特定版本的依赖项兼容。这在处理某些需要特定版本的依赖项或解决依赖冲突时非常有用。 -
深入了解库的实现
通过查看和编译库的源码,你可以更好地理解库的内部实现,这有助于调试和优化你的应用程序。 -
最新版本或修复
有时,库的最新版本或修复可能还没有发布到 PyPI。通过源码安装,你可以直接从库的代码仓库获取最新的代码和功能。 -
无二进制依赖
某些 Python 库包含需要编译的 C/C++ 代码。通过源码安装,你可以确保这些库在你的系统上正确编译和工作,避免了二进制分发中可能存在的兼容性问题。 -
安全性和透明性
通过查看源码并编译安装库,你可以确保没有包含任何恶意代码或安全漏洞。这在处理敏感项目或需要高安全性的环境中特别重要。