新手区 done

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

done

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

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

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

注意命名规范

围城 回复

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

arkin 回复

是我的包不应该用 Public 么

xyh421 回复

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

围城 回复

Readconfig 就是读取 ini 配置文件的

thanksdanny 回复

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

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

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

arkin 回复

感谢!等会我下班试试!

arkin 回复

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

arkin 回复

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

围城 回复

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

围城 回复

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

thanksdanny 回复

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

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

arkin 回复

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

thanksdanny 回复

我看下 Q 1079211957

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

arkin 回复

感谢!加你了!

贴上整个项目的文件 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 回复

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

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 到。

among 回复

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

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