1 No module named xxx

1.1 问题描述

文件目录结构说明:被引用的模块,位于在相同的目录下。
导入模块提示:no module named as xxx。强行在pycharm中import时,引用相应的模块,发现写代码时,没有代码自动提示,且代码导航也没法使用。然而,代码运行时,却可以正常运行。

1.2 问题解决

右击文件夹选择Mark Directory as Sources root12。如果是多级目录的话,每一个目录,都这么操作。如下图所示。就能顺利的对其import。
mark_as_root.png

标记为Sources Root的包文件夹,会变成蓝色。普通的包文件夹,是灰色的。如下图。
compareDirectory.png

1.3 其它原因

其它import模块,没有代码提示的可能原因:模块名以数字开头。

2 指定导入具体某个包下的模块的写法

例子:如下图所示,工程目录下中,com.tools与package1两个包下,有一个同名的模块:"hm_10_分隔线模块.py",如何指定具体引用哪个呢?
refrenceModule.png

可以使用from 包路径 import 模块名来指定。

# 指定引用com.tools包下的hm_10_分隔线模块的写法  
from com.tools import hm_10_分隔线模块    
​  
# 指定引用package1包下的hm_10_分隔线模块的写法  
from package1 import hm_10_分隔线模块

如果上面的导入代码同时出现。以后导入为准。

3 测试代码

测试代码,参考了传智博客的官网python视频中的源码3。路径为:https://github.com/chuzhixing/04_module

4 参考文献


  1. https://www.zhihu.com/question/52880389
  2. https://www.jetbrains.com/help/pycharm/configuring-folders-within-a-content-root.html
  3. http://yun.itheima.com/course/273.html?bili (Python入门教程完整版(懂中文就能学会))

楚知行
18 声望4 粉丝