在写一个scrapy项目,发现在自己创建的模块中无法导入上级目录中的item。
可是我对照网上找的例子,没啥区别啊。编译器一直报错说没有这个模块。
(亲测可用)
在爬虫代码最前面加入一段代码

from __future__ import absolute_import

即可成功运行

这句 import 并不是指将所有的导入视为绝对导入,而是指禁用 implicit relative import(隐式相对导入), 但并不会禁掉 explicit relative import(显示相对导入)。

那么到底什么是隐式相对导入,什么又是显示的相对导入呢?我们来看一个例子,假设有如下包结构:

thing
├── books
│   ├── adventure.py
│   ├── history.py
│   ├── horror.py
│   ├── __init__.py
│   └── lovestory.py
├── furniture
│   ├── armchair.py
│   ├── bench.py
│   ├── __init__.py
│   ├── screen.py
│   └── stool.py
└── __init__.py

那么如果在 books 中引用 bench,则有如下几种方式:

import bench                 # 此为 implicit relative import
from . import bench          # 此为 explicit relative import
from furniture import bench  # 此为 absolute import

隐式相对就是没有告诉解释器相对于谁,但默认相对与当前模块;而显示相对则明确告诉解释器相对于谁来导入。以上导入方式的第三种,才是官方推荐的,第一种是官方强烈不推荐的,Python3 中已经被废弃,这种方式只能用于导入 path 中的模块。

参考:https://blog.csdn.net/bitcarmanlee/article/details/66053727

python项目中无法import不同文件的代码相关推荐

  1. python 项目中的requirements.txt文件

    在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.这个文件有点类似与Rails的Gemfile.其作用是用来在另一台PC ...

  2. Python 项目中requirements.txt依赖文件的使用

    在学习他人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.其好处就是在新设备上重新构建项目时,快速的添加运行程序所需要的依赖. ...

  3. docker部署python项目中pillow的字体文件解决

    一.前言 我从下午一点开始弄,到下午四点才完全搞定 二.思路 主要是将自定义的存放字体文件的文件夹加入到搜索目录里面 三.代码 覆写pillow的truetype函数 def mytruetype(f ...

  4. python项目中requirements的巧用(一键导入所有安装包)

    一个Python 项目中可能安装很多安装包, 再次创建虚拟环境是需要重新安装的话很麻烦也费时间, 或者项目部署的时候避免重装, 可以将现有项目的所有安装包记录在requirements.txt 文件, ...

  5. 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片...

    在我们迭代项目的过程中,经常会启用某些功能,或者修改某些界面的问题,那么问题来了,这样很容易出现大量的冗余.java文件,冗余资源文件,一些冗余的界面文件等.那么问题既然出现了,那么如何去解决呢,这就 ...

  6. Vue项目中遇到了大文件分片上传的问题

    Vue项目中遇到了大文件分片上传的问题,之前用过webuploader,索性就把Vue2.0与webuploader结合起来使用,封装了一个vue的上传组件,使用起来也比较舒爽. 上传就上传吧,为什么 ...

  7. python神奇时钟项目_怎么在Python项目中利用Pygame绘制一个时钟

    怎么在Python项目中利用Pygame绘制一个时钟 发布时间:2020-11-30 14:24:30 来源:亿速云 阅读:54 作者:Leah 怎么在Python项目中利用Pygame绘制一个时钟? ...

  8. VUE 项目中引入外部js文件(CND引入)

    以VUE项目中引入echarts文件为例: 第一步在VUE项目中找到index.html文件 引入 :<script src="https://cdnjs.cloudflare.com ...

  9. python中pass的使用_pass语句如何在Python项目中使用

    pass语句如何在Python项目中使用 发布时间:2020-11-16 14:55:02 来源:亿速云 阅读:98 本篇文章为大家展示了pass语句如何在Python项目中使用,内容简明扼要并且容易 ...

最新文章

  1. python编程入门与案例详解pdf-这些年我读过的技术经典图书(附电子版下载地址)...
  2. 这些Java代码优化细节,你需要注意!
  3. oracle左右连接的另外表示方法
  4. [react] 怎么定时更新一个组件?
  5. C基础(36——40)
  6. InnoDB存储引擎介绍-(7) Innodb数据页结构
  7. css中背景的应用及BFC与IFC应用
  8. R语言data manipulation学习笔记之创建变量、重命名、数据融合
  9. 大数据发展的根基是什么?
  10. quartus仿真24:数据选择器MUX四选一74153八选一74151
  11. 前后端分离实现excel批量导入导出功能
  12. Charles抓包工具的安装操作以及可能出现的问题(安装不了证书、手机不能上网)
  13. 推荐几款优秀的开源博客系统
  14. 华为路由器AAA配置与管理
  15. JPBC库应用之身份基加密IBE
  16. excel单元格内的数值向上、向下取整
  17. python遍历循环和无限循环结构_Python --- 程序的循环结构
  18. Python 机器学习工具库
  19. Java 正则验证邮箱
  20. 快速傅立叶变换的C语言实现方法

热门文章

  1. A single input file is required for a non-link phase when an outputfile is specified
  2. 范数与距离的关系以及在机器学习中的应用
  3. django ajax上传文件
  4. java数组与字符串互转
  5. Freemarker + xml 实现Java导出word
  6. 彻底理解Canal,看这篇就够了
  7. 小学五年级计算机教学论文,小学五年级数学教学论文 如何激发学生学习数学的兴趣...
  8. python北京时间代码_python代码定时同步本机的北京时间详解
  9. 分布式锁能解决 mysql死锁吗_mysql死锁问题分析
  10. linux搜索有哪些文件夹,Linux常见几个查找命令