python import导入失败 相对路径 绝对路径
首先我们有这样一个目录结构

经过我无数次的调试,我发现从test3调用spider以及downloadss文件可以直接import调用

但是从外部的app.py文件调用,spider.py文件死活调用不出来


以上是downloadss.py文件的调用过程,以下是spyder.py文件的调用过程


之前大多数程序都是在单个文件中进行运行,很少涉及到调用外部文件。
在此做一个记录。
在Python中,一个.py文件就称之为一个模块(Module),包含.py文件的文件夹,且里面有一个__init_.py的文件夹称为包(Package),init.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,它的模块名就是包名。在python脚本被执行,python导入其他包或模块时,python会根据sys.path列表里的路径寻找这些包或模块。如果没找到的话,程序就会报错。
在python文件导入的过程中如果遇到了一些文件导入的问题,将导入的格式换为绝对导入,大概率能解决
import sys,os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) #将路径添加到系统路径中
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from core import downloadss
class SpiderMain():
def __init__(self):
down = downloadss.Downloader()
down.downloads('http://www.baidu.com')
引用成功

参考资料:
https://blog.csdn.net/weixin_44546620/article/details/104755730
https://stackoverflow.com/questions/14132789/relative-imports-for-the-billionth-time/14132912?newreg=4b2f909098bc4af7b9cfc46744ba21cd
https://www.cnblogs.com/qi-yuan-008/p/12833189.html
python import导入失败 相对路径 绝对路径的更多相关文章
- Python Import机制备忘-模块搜索路径(sys.path)、嵌套Import、package Import
出处:http://blog.csdn.net/kernelspirit/article/details/3381666 最近在看<Python源码剖析>,对Python内部运行机制比以前 ...
- windows 下Python import 导入自定义模块
周末在家研究这个东西,则找到解决方案. 费话少说,上代码 #定义一个自定义的函数,如下 #函数的名称必须是字母和数字的组合,不能用数字开头 #函数名后用小括号括住入参,可以用逗号分隔多个 #如果有返回 ...
- pyhanlp安装成功,import导入失败,出现:importerror: cannot import name 'jvmnotfoundexception'
1.问题描述: pyhanlp成功安装,并且可以正常使用,但是这段时间再去用的时候,发现出问题了,一运行就出现,下面的问题: importerror: cannot import name 'jvmn ...
- python import 导入两个模块同时有同一名称的方法如何调用 ?
from moudule import *(这种方法不推荐) 一般不推荐使用"from 模块 import"这种语法导入指定模块内的所有成员,因为它存在潜在的风险. 比如同时导入 ...
- python import模块熟悉方法
python import导入的可用模块很多,新增速度较快,无法一次性全部掌握. 掌握熟悉一种模块的方法是非常有价值的技能. 探究模块可以从python解释器入手,具体流程记录如下: 以os模块为例: ...
- 【python基础】使用import导入相对路径的源文件
前言 在编写python代码的过程中,不同路径下的源码文件该如何引用,这是个问题,本文针对这个问题介绍解决方法. 源码目录结构: . ├── conf.py ├── main.py ├── mod/ ...
- python进阶(28)import导入机制原理
前言 在Python中,一个.py文件代表一个Module.在Module中可以是任何的符合Python文件格式的Python脚本.了解Module导入机制大有用处. 1. Module组成 一个.p ...
- 7行代码,彻底告别python第三方包import导入问题!
最近有不少小伙伴咨询关于pyton第三方包导入的问题,今天我们就来聊聊第三方包导入那些事. 随着对python学习的渐入臻境,越来越多的小伙伴们开始导入自己所需的第三方包,实现各种各样的功能.但是,他 ...
- python笔记-1(import导入、time/datetime/random/os/sys模块)
python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其 ...
- python笔记-6(import导入、time/datetime/random/os/sys模块)
一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内容待日后有深入理解了再来细说 1.import可以导入的两种不同的内容 1.1 *.py文件结尾的文件 ...
随机推荐
- “初始化 Java 工具”期间发生了内部错误, java.lang.NullPointerException
今天刚打开eclipse就报了这个错误,我怀疑是昨晚想关电脑的时候,关闭eclipse太快,没有等待工作空间保存就关了电脑的缘故 错误如图: (图片来自下方链接博客,因为忘记截图了) 我百度后按照提示 ...
- mxArray 和 mwArray 的区别
首先,mxArray是MatlabC 函数库的结构体,而mwArray是Matlab C++ 函数库中对mxArray的包装 类. 其次,二者的内存管理方式不同.mxArray的内存管理方式比较松散, ...
- Exp6 MSF应用基础
目录 一.实践内容 1 一个主动攻击实践 漏洞介绍 1 攻击前的准备 2 执行攻击 2 一个针对浏览器的攻击 3 一个针对客户端的攻击,以office为例 4 辅助模块的使用 二.问题回答 1 用自己 ...
- windows导出当前目录结构
cd 进入目录 tree /f>>tree.txt
- 软件工程实践总结&个人技术博客
这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求 这个作业的目标 总结课程与学到的技术回顾课程 其他参考文献 <构建之法><软件质量和测试> 目录 课程回顾与总结 ...
- ubuntu 20.04 ibus添加五笔输入法
ubuntu 20.04 ibus添加五笔输入法:虽然现在五笔输入法已经没有什么新人使用,如果还有一两个人,找不到系统自带的极点五笔输入,可以按如下方式操作:以前是用ibus-setup,点添加,现在 ...
- 解决Fiddler设置的代理总是被自动关闭,The system proxy was changed
火绒剑过滤路径ProxyOverride 停用服务SangforSP https://www.cnblogs.com/jspider/p/15896503.html
- vue项目搭建(vue2+elementUI+less)
装node.js然后控制台输入node -v有版本号就是成功了 如是是windows系统建议装个git ,我这边习惯用命令行了 按照vue 和vue-cli vue-cli是一个vue的脚手架 按照提 ...
- 分布式锁 -- redis
原理 redis设置一个key和value,如果存在则获取锁失败,不存在则获取锁成功处理业务,业务处理完成后删除这条数据,可以带个失效时间. 代码 public void handleInvoice( ...
- grep的正则匹配使用方式
grep正则匹配的命令方式如下 $ grep 'pattern1\|pattern2' filename 或 $ grep -E 'pattern1|pattern2' file grep默认是区分大 ...