很多时候,我们在写一个python项目时,都会分模块来写,在一个模块中导入自己写的另一个模块,最后在写一个启动程序,但运行启动程序时往往会报错说找不到你写的模块,对此,这里教大家一种通用且正规的python项目组织结构,基本都能解决这种找不到本地模块的问题。
以下图为例说明:

首先是创建一个项目文件夹:myproject ,这里面包括启动文件start.pyREADME.md文件以及你的项目文件myproject文件夹。这就是基本的项目结构。这样你就能在myproject文件夹里面的py文件里使用相对路径导入其他文件夹下的模块了。其实,Scrapy项目的目录结构也大致是这样的,大家可以看看创建scrapy项目时的目录结构。

  1. mytask.py

    这里就很方便使用 “.” 和 “..” 来表示当前路径和上一级路径了
  2. start.py

    这里要注意,启动文件start.py中不能使用".“和”.."等来导入本地模块,因为主模块(启动文件)不能使用相对导入。

最后,只要在命令行输入python start.py就可以运行程序了。

2022-04-18补充:
有些项目代码中使用的是绝对导入,用pycharm打开,导入的地方可能会出现红色下划波浪线,虽然不影响程序运行,但看着难受,安排:鼠标右键项目名->Mark Directory as ->选择Sources Root即可。

python导入本地模块报错之终极解决方案相关推荐

  1. Module 'matplotlib' has no 'contourf' member 使用Python导入matplotlib模块报错

    错误提示 使用Python编译画图时提示Module 'matplotlib' has no 'contourf' member 原因分析 导入matplotlib模块错误 matplotlib为程序 ...

  2. VScode 导入自定义模块报错问题

    VScode 导入自定义模块报错问题 这个问题在vscode默认是从根目录下导入自定义模块,所以若模块未在根目录下存储就会报错. 个人尝试了修改文件内部的settings json内的"py ...

  3. python3.7导入gevent模块报错的解决方案

    python3.7导入gevent模块报错的解决方案 参考文章: (1)python3.7导入gevent模块报错的解决方案 (2)http://www.cnblogs.com/eva-j/p/939 ...

  4. Python安装torch模块报错处理

    Python安装torch模块报错处理 前言 安装 报错 解决 查找文档 解决方案 安装 torch 等待安装完成 安装 torchvision 提示安装完成 总结 前言 因python项目上线,需要 ...

  5. 关于python中requests模块导入问题-python引入requests模块报错

    import requests模块总是报错,求助大神 >>> import requests Traceback (most recent call last): File &quo ...

  6. python multiprocess pool模块报错pickling error

    官方文档发现python默认只能pickle以下的类型: None, True, and False integers, floating point numbers, complex numbers ...

  7. python 使用 re 模块报错 re.error: unknown extension ?<n at position

    异常解读 该异常的格式一般为: re.error: unknown extension ?<n at position 一个位置数字 本异常看文字提示能大概猜出 BUG 问题所在,属于正则表达式 ...

  8. XenApp 6 license导入报错的终极解决方案

    随着XenApp 6黄金版的出现,越来越多企业关注黄金版, 为什么用户喜欢黄金版? 1.全中文,易管理. 2.安装比较简单. 3.最后一个是概念,为中国人定制的黄金版, 以前是全英文的软件,而且有日文 ...

  9. python导入py文件报错

    python有大量的内置模块,可以方便地导入.同样python也可以导入其它人写的py程序,以利用别人写好的类和函数. 1.在缺省状态下,导入一个已编写好的py文件用import 跟上py文件名,有时 ...

最新文章

  1. HTML基础部分(3)iframe,提交信息的一些知识
  2. Android消息广播的使用
  3. linux下批量修改文件名的方法
  4. python 爬虫 请求网页内容不一致_Python爬虫偷懒神器 — 快速构造请求头!
  5. TextView的部分点击事件和点击事件
  6. ai进入轮廓模式怎么退出_详解AI中扩展、扩展外观、轮廓化描边、创建轮廓
  7. 天池 在线编程 所有子数组之和(排列组合)
  8. shell循环遍历多条字符串
  9. ML.NET 9月更新
  10. win10 Anaconda 安装教程
  11. 1.高性能MySQL --- MySQL 架构
  12. el-table因为出现垂直滚动条造成多一个td的空白格
  13. python爬虫实现贴吧表情包的爬取
  14. Web语音播报提示音
  15. UnityShader实现漫反射光照模型和高光反射光照模型
  16. Zynga公布2019年第三季度财务业绩
  17. Frank-Cucumber - Core Frank Steps
  18. IOS开发教程第一季之02UI进阶day4合并IOS学习015--Segue小专题、沙盒存储小专题、归档/解档、TabBarController、App主流UI框架结构
  19. 怎么用计算机打印出东西,怎样在电脑上打印东西_怎么用电脑打印东西
  20. 如何用禅道写出一份让开发惊叹的测试用例?测试用例库了解一下

热门文章

  1. 桥牌坐庄训练bm2000 level3闯关记录——A7
  2. 第二十次csp认证 第四题 星际旅行题解
  3. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
  4. 老款诺基亚6 android 8,行动迅速!诺基亚为Nokia 6/7推送安卓8.0
  5. 从技术趋势看质量赋能
  6. 【收藏级】88条关于OpenStack命令的手册(常看常新)
  7. 什么是加密?有哪些加密类型和加密算法?
  8. 2021年美国大学生数学建模竞赛A题思路分析
  9. Hadoop支持的文件格式之Text
  10. 3Q中的AQ是什么意思?