栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

加载模块时使用sys.path.insert(0,path)和sys.path(append)的效果

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

加载模块时使用sys.path.insert(0,path)和sys.path(append)的效果

因为python从

sys.path
列表的第一个目录开始按顺序检查目录,直到找到要查找的
.py
文件为止。

理想情况下,当前目录或脚本目录始终是列表中的第一个元素,始终是第一个元素,除非像您一样对其进行修改。从文档-

在程序启动时进行初始化,该列表的第一项path
[0]是包含用于调用Python解释器的脚本的目录。如果脚本目录不可用(例如,如果交互式调用解释器或从标准输入中读取脚本),则path
[0]为空字符串,该字符串将引导Python首先搜索当前目录中的模块。请注意,由于PYTHONPATH的结果,在插入条目之前插入了脚本目录。

因此,最有可能的是,

.py
在当前目录(运行脚本的位置)中,有一个文件与您要从中导入的模块同名。

另外,要注意有关

importError
s的问题,可以说导入错误说–
importError: No module named main
这并不意味着s
main.py
被覆盖,不,如果被覆盖我们就不会在尝试读取它时遇到问题。其上方的某些模块被覆盖。
py
或其他文件。

范例-

我的目录结构看起来像-

 - test    - shared         - __init__.py         - phtest.py  - testmain.py

现在,从

testmain.py
,我打电话给
from shared import phtest
,它工作正常。

现在假设我在

test
目录`中引入了shared.py ,例如-

 - test    - shared         - __init__.py         - phtest.py  - testmain.py   - shared.py

现在,当我尝试从中执行操作

from shared import phtest
testmain.py
,我会收到错误消息-

importError: cannot import name 'phtest'

如您在上面看到的,引起问题的文件

shared.py
不是
phtest.py



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633799.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号