找回密码
 会员注册
查看: 15|回复: 0

Python中PYTHONPATH与sys.path详解——看完不会用你打我

[复制链接]

5

主题

0

回帖

16

积分

新手上路

积分
16
发表于 2024-9-6 00:00:48 | 显示全部楼层 |阅读模式
一、PYTHONPATH是什么PYTHONPATH是python查找模块和包的路径,当导入模块时,python解释器将按顺序在PYTHONPATH下寻找。通过sys.path可以查看PYTHONPATH的值,路径列表的第一个元素为空字符串,代表的是相对路径下的当前目录,当我们运行python文件时会把本文件的实际物理路径作为第一个元素的值。例如:C:\TestProject\PythonProject01>pythonsrc/main.py和C:\TestProject\PythonProject01\src>pythonmain.py,最终都是把C:\TestProject\PythonProject01\src作为PYTHONPATH第一个元素的值。由于在导入模块的时候,解释器会按照列表的顺序搜索,直到找到第一个模块,所以优先导入的模块为同一目录下的模块.二、PYTHONPATH值的来源PYTHONPATH中的路径是基于Python可执行文件(python.exe)的路径然后再查找几处地标文件和目录(本解释来自官方文档)。 三、环境变量中添加PYTHONPATH变量当我们在环境变量中添加PYTHONPATH之后,sys.path会自动把PYTHONPATH的值添加进来。四、运行按钮执行功能项目python文件时,.env和settings.json与PYTHONPATH的关系总结如下:.env文件不存在或文件存在但没配置PYTHONPATH则优先使用settings.json中的PYTHONPATH.env文件配置了PYTHONPATH则优先使用.env中的PYTHONPATH1、没有.env文件+settings.json的PYTHONPATH="."2、.env没设置PYTHONPATH +settings.json的PYTHONPATH="."3、.env的PYTHONPATH="."+settings.json的PYTHONPATH="."4、.env的PYTHONPATH="./src"+settings.json的PYTHONPATH="."5、.env的PYTHONPATH="./src999"+settings.json的PYTHONPATH="."五、运行按钮执行pytest项目python文件时,.env和settings.json与PYTHONPATH的关系总结如下:仅.env配置的PYTHONPATH对sys.path有效settings.json配置的PYTHONPATH对sys.path无效1、没有.env文件+settings.json的PYTHONPATH="./src"2、.env没设置PYTHONPATH +settings.json的PYTHONPATH="./src"3、.env的PYTHONPATH="."+settings.json的PYTHONPATH="./src"4、.env的PYTHONPATH="./src"+settings.json的PYTHONPATH="./src"5、.env的PYTHONPATH="./src999"+settings.json的PYTHONPATH="./src"六、命令执行功能项目python文件时,.env和settings.json与PYTHONPATH的关系总结如下:仅settings.json配置的PYTHONPATH对sys.path有效settings.json中PYTHONPATH的[.]指执行python命令时所处的路径.env配置的PYTHONPATH对sys.path无效1、.env的PYTHONPATH="./src999" +settings.json没设置PYTHONPATH2、.env的PYTHONPATH="./src999" +settings.json的PYTHONPATH="."3、.env的PYTHONPATH="./src999" +settings.json的PYTHONPATH="./src"七、命令执行pytest项目python文件时,.env和settings.json与PYTHONPATH的关系总结如下:仅settings.json配置的PYTHONPATH对sys.path有效settings.json中PYTHONPATH的[.]指执行python命令时所处的路径.env配置的PYTHONPATH对sys.path无效1、.env的PYTHONPATH="./src" +settings.json没设置PYTHONPATH2、.env的PYTHONPATH="./src" +settings.json的PYTHONPATH="."3、.env的PYTHONPATH="./src" +settings.json的PYTHONPATH="./src"4、.env的PYTHONPATH="./src" +settings.json的PYTHONPATH="./src999"八、总结四、五、六、七节开头就是总结,后续内容是结论的验证过程。整理这篇文章真是不太容易,如果这篇文章对你有帮助,请点赞、评论支持下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 19:15 , Processed in 0.430313 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表