新手区 done

thanksdanny · 2017年06月23日 · 最后由 thanksdanny 回复于 2017年06月25日 · 1549 次阅读

done

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 32 条回复 时间 点赞
thanksdanny 回复

这样说吧; 我之前也出现类似情况;
代码执行后,报错:找不到模块,更改文件名、类名、函数名、避免重复(包括与底层库);再次执行后就 ok 了

你贴出来的图,只能看到 from 文件名 1 import 类名 1 ;文件名 1 与 类名 1 避免重复;

from ReadConfig import ReadConfig;这样会报错:找不到模块,重新命名试下

xyh421 回复

第三张图应该就是我的目录路径,我创建了一个叫 Public 的 package,然后导入他里面的 ReadConfig.py

围城 回复

是的,命名得注意; 尤其在使用 IDE 的时候

注意命名规范

thanksdanny 回复

所有的都不行? 你把 Public 改了; 文件夹命名也需要注意;

类似问题的,我的处理的方法就是这样,基本都解决了;仅供参考,可以试试; 如果有大神,帮你直接指出,我也可以学习下

arkin 回复

试了下换了新建了个新 package 还是不行…

请楼主解决后,把方法贴一下可好~谢谢哈~

thanksdanny 回复

我看下 Q 1079211957

arkin 回复

感谢!加你了!

Public 是你本地的代码的话,就要看一下路径对不对
如果不是,就要看有没有安装这个公共库.

鼠标移上去,看看 ide 报的啥啊 还有你 ReadConfig 里写的啥

围城 回复

ide 里没有报错,但一运行就说没找到模块

arkin 回复

是我的包不应该用 Public 么

围城 回复

Readconfig 就是读取 ini 配置文件的

arkin 回复

感谢!等会我下班试试!

arkin 回复

那也不一定,文件名是一个,导入的时候,文件里还有类

arkin 回复

不过我文件名试过好像是改成 Readconfigs.py 还是不行…

围城 回复

是的,而且我好像只要是其他包的好像都不行,比如我 import HomePage.py,也是报错找不到模块

贴上整个项目的文件 tree
整个项目作为一个包的话,需要从该项目根目录开始 import 路径

看下官方文档关于 package 和 import 的部分。

ting 回复

已经翻过书,但实在看不出有什么不对的地方.....

我更新了,在正文贴了项目结构,麻烦帮我看看...

ting 回复

而且奇怪的是以前也是这样 import,可以正常使用的,现在却怎么 import 怎么 from 都提示我 nomodule,实在没辙了,能力有限也看不出有什么问题。。

yymobile 下建一个__init__.py
然后 from yymobile.public.readconfig import xxx
大小写自己注意

不行....from yymobile.public.readconfig 的话,会提示 unresolve reference

thanksdanny 回复

错误贴完整,代码贴上来
顺便是 ide 报错还是运行时报错

如果 pycharm 中没有报错的话,就按照下图,找下,源文件在哪里。那是不是 import 到其他文件了。

among 回复

试了下,确实可以跳转到的文件确实又是项目中的。

among 回复

太谢谢了终于解决到了这问题!真的没想到在 ide 里 run 的效果会跟命令行的效果不一样的

thanksdanny 回复

好吧,不排除你在 ide 中做了特殊的设置。

在命令行下执行 python
输入:import sys

输入:sys.path
看下系统中 lib 的 path 的路径,在这个路径下,你 import 的包可以找到吗?

从目录结构上看,你执行的 py 在 Testcase 目录中,但是那个 import 的包在这个 py 上一级目录的相同目录中。
我怀疑你在那个 Public 目录中,做了一个 ‘make directory as sources root’ 的操作。这样在 Pycharm 中,就不会提示错误,但是在命令行下执行,是提示找不到这个包的。

among 回复

感谢!!好像真的是 ide 的设置。我在 sys.path 里没有找到我的包。
然后我新建了个项目测试了下

如果我直接用 ide 去 run 的话

是可以提示成功的

但是如果我在 terminal 去运行 py 文件,则提示我没有模块

thanksdanny 回复

结构不想改的话,在 sys.path 中 append 路径。
但这不是一个好的方法。入口最好放在上一个目录。这样 public 肯定可以 import 到。

thanksdanny 关闭了讨论 06月28日 02:26
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册