简介
Python 有大量的内置模块库(可谓 “应有尽有”)。
还有更多的第三方模块。可在 Python 包索引 或 PyPi 中查看。或者直接在 Google 上搜索特定主题。
如何处理 Python 的第三方依赖项是一个不断发展的话题。本节仅介绍基础知识,以帮助你理解其工作原理。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
Python 有大量的内置模块库(可谓 “应有尽有”)。
还有更多的第三方模块。可在 Python 包索引 或 PyPi 中查看。或者直接在 Google 上搜索特定主题。
如何处理 Python 的第三方依赖项是一个不断发展的话题。本节仅介绍基础知识,以帮助你理解其工作原理。
sys.path
是一个目录,其中包含 import
语句检查的所有目录的列表。查看一下:
>>> import sys
>>> sys.path
... 查看结果...
>>>
如果你导入某个内容但它不在这些目录中的任何一个中,你将得到一个 ImportError
异常。
Python 标准库中的模块通常来自诸如 /usr/local/lib/python3.6
这样的位置。你可以通过一个简短的测试来确定:
>>> import re
>>> re
<module're' from '/usr/local/lib/python3.6/re.py'>
>>>
在交互式解释器(REPL)中简单查看一个模块是一个很好的调试技巧。它会告诉你文件的位置。
第三方模块通常位于专门的 site-packages
目录中。如果你执行与上述相同的步骤,就会看到它:
>>> import numpy
>>> numpy
<module 'numpy' from '/usr/local/lib/python3.6/site-packages/numpy/__init__.py'>
>>>
同样,如果你试图弄清楚与 import
相关的某些内容为何未按预期工作,查看模块是一个很好的调试技巧。
安装第三方模块最常用的方法是使用 pip
。例如:
$ python3 -m pip install packagename
此命令将下载该软件包并将其安装到 site-packages
目录中。
解决软件包安装问题的一个常见方法是为自己创建一个所谓的“虚拟环境”。当然,实现这一点并没有“唯一的方法”——实际上,有几种相互竞争的工具和技术。不过,如果你使用的是标准的 Python 安装,你可以尝试输入以下命令:
$ sudo apt install python3-venv
$ python -m venv mypython
bash %
等待片刻后,你将拥有一个新的目录 mypython
,这是你自己的小型 Python 安装环境。在该目录中,你会找到一个 bin/
目录(适用于 Unix)或一个 Scripts/
目录(适用于 Windows)。如果你运行在那里找到的 activate
脚本,它将“激活”这个版本的 Python,使其成为 shell 的默认 python
命令。例如:
$ source mypython/bin/activate
(mypython) bash %
从这里开始,你现在可以为自己安装 Python 软件包了。例如:
(mypython) $ python -m pip install pandas
...
对于实验和尝试不同的软件包来说,虚拟环境通常能很好地工作。另一方面,如果你正在创建一个应用程序,并且它有特定的软件包依赖项,那就是一个稍有不同的问题了。
如果你编写了一个应用程序,并且它有特定的第三方依赖项,那么一个挑战在于创建和维护包含你的代码及依赖项的环境。遗憾的是,在Python的发展历程中,这一直是一个非常混乱且变化频繁的领域。即使到现在,它仍在不断发展。
我不会提供很快就会过时的信息,而是建议你参考Python打包用户指南。
看看你是否能重现上述创建虚拟环境并在其中安装pandas的步骤。
恭喜你!你已经完成了第三方模块实验。你可以在LabEx中练习更多实验来提升你的技能。