背景:在运行代码的过程中,经常出现找不到文件的问题。因此,在网上查询相关的文章,记录下处理。
python 在导入库(模块)或者第三方库(模块),会按序检索当前目录(运行文件)、已安装的内置模块和第三方模块,搜索路径存放在sys模块的path。
库、包、模块的区别:
1、模块:自我包含并且有组织的代码片段为模块。一个文件就是一个模块。
2、包:包是一个包含__init__.py 文件的目录,该目录下一定得有这个__init__.py文件和其它模块或子包。
3、库:库是参考其它编程语言的说法,就是指python中的完成一定功能的代码集合,供用户使用的代码组合。在python中是包和模块的形式。
库->包->模块,从大到小的层级关系!
link:https://www.zhihu.com/question/30082392
查看工作路径
- 终端内运行:
echo $PATH
- 代码内运行:
import sys
print(sys.path)
添加工作路径
- 终端内添加:
# 一般的环境添加
$(user): export PATH=$PATH:<你的要加入的路径>
# 添加pythonpath的方法, 注意PYTHONPATH才是python检索路径
export PYTHONPATH=$PYTHONPATH:/home/<你的要加入的路径>
语 法:export [-fnp][变量名称]=[变量设置值]
参 数:
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量
注意:(与shell变量相结合)
1 =前PATH变量不加$符号
2 再增加的路径用:追加
- 当前用户适用
# 用户目录下的配置文件,ll -a 可见,适用当前用户
vim ~/.bashrc
# 最后一行新增
export PATH=<你的要加入的路径>:$PATH
如果要加入多个路径,只要:
export PATH=<你要加入的路径1>:<你要加入的路径2>: ...... :$PATH
# python 路径新增
export PYTHONPATH=$PYTHONPATH:/home/<你的要加入的路径>
# 生效 或者注销重新登录
source ~/.bashrc
修改全局用户,只需要在sudo gedit /etc/profile 处理相同操作,需要管理员权限
- 代码内操作
import sys
sys.path.append('引用模块的地址')
# 当前文件目录的上一层
sys.path.append("..")