python项目中无法import不同文件的代码
在写一个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不同文件的代码相关推荐
- python 项目中的requirements.txt文件
在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.这个文件有点类似与Rails的Gemfile.其作用是用来在另一台PC ...
- Python 项目中requirements.txt依赖文件的使用
在学习他人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.其好处就是在新设备上重新构建项目时,快速的添加运行程序所需要的依赖. ...
- docker部署python项目中pillow的字体文件解决
一.前言 我从下午一点开始弄,到下午四点才完全搞定 二.思路 主要是将自定义的存放字体文件的文件夹加入到搜索目录里面 三.代码 覆写pillow的truetype函数 def mytruetype(f ...
- python项目中requirements的巧用(一键导入所有安装包)
一个Python 项目中可能安装很多安装包, 再次创建虚拟环境是需要重新安装的话很麻烦也费时间, 或者项目部署的时候避免重装, 可以将现有项目的所有安装包记录在requirements.txt 文件, ...
- 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片...
在我们迭代项目的过程中,经常会启用某些功能,或者修改某些界面的问题,那么问题来了,这样很容易出现大量的冗余.java文件,冗余资源文件,一些冗余的界面文件等.那么问题既然出现了,那么如何去解决呢,这就 ...
- Vue项目中遇到了大文件分片上传的问题
Vue项目中遇到了大文件分片上传的问题,之前用过webuploader,索性就把Vue2.0与webuploader结合起来使用,封装了一个vue的上传组件,使用起来也比较舒爽. 上传就上传吧,为什么 ...
- python神奇时钟项目_怎么在Python项目中利用Pygame绘制一个时钟
怎么在Python项目中利用Pygame绘制一个时钟 发布时间:2020-11-30 14:24:30 来源:亿速云 阅读:54 作者:Leah 怎么在Python项目中利用Pygame绘制一个时钟? ...
- VUE 项目中引入外部js文件(CND引入)
以VUE项目中引入echarts文件为例: 第一步在VUE项目中找到index.html文件 引入 :<script src="https://cdnjs.cloudflare.com ...
- python中pass的使用_pass语句如何在Python项目中使用
pass语句如何在Python项目中使用 发布时间:2020-11-16 14:55:02 来源:亿速云 阅读:98 本篇文章为大家展示了pass语句如何在Python项目中使用,内容简明扼要并且容易 ...
最新文章
- python编程入门与案例详解pdf-这些年我读过的技术经典图书(附电子版下载地址)...
- 这些Java代码优化细节,你需要注意!
- oracle左右连接的另外表示方法
- [react] 怎么定时更新一个组件?
- C基础(36——40)
- InnoDB存储引擎介绍-(7) Innodb数据页结构
- css中背景的应用及BFC与IFC应用
- R语言data manipulation学习笔记之创建变量、重命名、数据融合
- 大数据发展的根基是什么?
- quartus仿真24:数据选择器MUX四选一74153八选一74151
- 前后端分离实现excel批量导入导出功能
- Charles抓包工具的安装操作以及可能出现的问题(安装不了证书、手机不能上网)
- 推荐几款优秀的开源博客系统
- 华为路由器AAA配置与管理
- JPBC库应用之身份基加密IBE
- excel单元格内的数值向上、向下取整
- python遍历循环和无限循环结构_Python --- 程序的循环结构
- Python 机器学习工具库
- Java 正则验证邮箱
- 快速傅立叶变换的C语言实现方法
热门文章
- A single input file is required for a non-link phase when an outputfile is specified
- 范数与距离的关系以及在机器学习中的应用
- django ajax上传文件
- java数组与字符串互转
- Freemarker + xml 实现Java导出word
- 彻底理解Canal,看这篇就够了
- 小学五年级计算机教学论文,小学五年级数学教学论文 如何激发学生学习数学的兴趣...
- python北京时间代码_python代码定时同步本机的北京时间详解
- 分布式锁能解决 mysql死锁吗_mysql死锁问题分析
- linux搜索有哪些文件夹,Linux常见几个查找命令