Python是如何寻找包的
现在每个人的计算机上可能不仅拥有一个 Python,而且还拥有更多的虚拟环境。安装包时,不小心忘记注意安装包的路径。第一的
让我们解决查找包的问题。这个问题很容易回答,但是很多人不知道这个原理。如果你的 Python 解释器的路径是
<path_prefix>/bin/python,那么当你启动Python交互环境或者用这个解释器运行脚本时,它会默认寻找如下位置1:
<path_prefix>/lib(标准库路径)
<path_prefix>/lib/pythonX.Y/site-packages(三方库路径,X.Y是对应Python的主次版本号,如3.7, 2.6)
当前工作目录(pwd命令的返回结果)
这里,如果你在 Linux 上使用默认的 Python,<path_prefix> 是 /usr,如果你使用默认选项自己编译,<path_prefix> 是
是/usr/local。从上面的第二篇文章可以看出,不同次要版本号的Python的三方库路径是不同的。如果将Python从3.6升级到3.7,之前安装的三方库都是
不能再用了。当然,你可以复制整个文件夹,并且在大多数情况下不会有任何问题。
几个有用的函数
sys.executable 当前使用的Python解释器路径
sys.path 当前包的搜索路径列表
sys.prefix 当前使用的<path_prefix>
>>> import sys
>>> sys.executable
'/home/frostming/.pyenv/versions/3.7.2/bin/python'
>>> sys.path
['', '/home/frostming/.pyenv/versions/3.7.2/lib/python37.zip', '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7',
'/home/frostming/.pyenv/versions/3.7.2/lib/python3.7/lib-dynload', '/home/frostming/.local/lib/python3.7/
site-packages', '/mnt/d/Workspace/pipenv', '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7/site-packages']
>>> sys.prefix
'/home/frostming/.pyenv/versions/3.7.2'
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python如何等待10秒执行下一条命令08/29
- ♥ python的特殊方法有哪些01/10
- ♥ 如何确定 Python 数中的偶数09/06
- ♥ 如何在python中输入空字符串09/08
- ♥ Python 类有几个方法08/30
- ♥ python安装后无法运行是怎么回事09/12
内容反馈