关于python模块的疑问

guzl86 2009-03-18 04:29:52
我的包结构是这样的:
a(box)
|
|-b(box)
|-c(box)
| |-e(box)
| |_f.py
|
|_d.py

f.py要引用d.py中的函数,我在g.py文件的前面写了 from a import d
在cmd中敲python f.py,报错ImportError: No module named a

这是怎么一回事?谢谢
...全文
127 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ymgc 2009-08-18
  • 打赏
  • 举报
回复
在eclipse的Interpreter-Python --> System PYTHONPATH中添加目录可以解决问题。但是在Interactive Window中,通过sys.path.append("xxx")添加目录,却还是不行。为什么?
guzl86 2009-03-18
  • 打赏
  • 举报
回复
还有一点我想说明一下情况,我用的是eclipse的一个插件devpy编写的工程,在eclipse中运行工程是没有问题的,可是要是用cmd去挑用工程的入口py文件,就会产生我的说的哪些情况。
David_Jiang 2009-03-18
  • 打赏
  • 举报
回复
我也从来都是和2楼一样干的,自己也觉得麻烦……
还不知道别的方法怎么用,学习一下~
guzl86 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 iambic 的回复:]
f是可以直接import a.d的,但是要保证这个包的最上层(也就是a)在python search path中。如果a不在当前目录下,可以通过设置环境变量PYTHONPATH,或者设置sys.path(也就是二楼的例子)来把a所在的目录添加进去。
[/Quote]
今天谢谢了,我晚上试一下。谢谢了。
iambic 2009-03-18
  • 打赏
  • 举报
回复
f是可以直接import a.d的,但是要保证这个包的最上层(也就是a)在python search path中。如果a不在当前目录下,可以通过设置环境变量PYTHONPATH,或者设置sys.path(也就是二楼的例子)来把a所在的目录添加进去。
guzl86 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 iambic 的回复:]
不好意思,又看了下你的代码结构,就是2楼说的path设置问题。
其实你的这个代码结构是不合理的。你既然把f.py放到一个package树中,那就说明这个f.py应该是以module的方式存在的。而module一般是不应该直接运行的,除非是测试目的。
所以建议你把f.py移出包结构。
[/Quote]
太感谢你了,包只是用来引用的。不是用来运行的,也许我要再设计一下结构才行。
那如果f.py就是别的文件引用的,f.py又引用了d.py那又该怎么办呢?
iambic 2009-03-18
  • 打赏
  • 举报
回复
不好意思,又看了下你的代码结构,就是2楼说的path设置问题。
其实你的这个代码结构是不合理的。你既然把f.py放到一个package树中,那就说明这个f.py应该是以module的方式存在的。而module一般是不应该直接运行的,除非是测试目的。
所以建议你把f.py移出包结构。
guzl86 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 iambic 的回复:]
直接import a能成功吗?
[/Quote]
不行
iambic 2009-03-18
  • 打赏
  • 举报
回复
直接import a能成功吗?
guzl86 2009-03-18
  • 打赏
  • 举报
回复
有的,每个模块下面我都加了,__init__.py文件
guzl86 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iambic 的回复:]
目录a下有__init__.py文件吗?
[/Quote]
有的,没有木块下面我都加了,__init__.py文件
king6o60 2009-03-18
  • 打赏
  • 举报
回复
我一般这么干
import sys
sys.path.append('../xxx')
将需要的路径加入到path里面
import a
iambic 2009-03-18
  • 打赏
  • 举报
回复
目录a下有__init__.py文件吗?

37,741

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧