Python模块,在同一个包中引用其他模块?

时间:2012-04-24 19:48:38

标签: python module package

我有一个简单的python包,其中包含以下目录结构:

wibble
|
|-----foo
|      |----ping.py
|
|-----bar
|      |----pong.py

简单问题:如何从ping.py引用pong.py中的函数/类?浏览文档,这似乎就像在__init__.pywibblefoo的根目录中创建bar文件一样简单,然后从pong.py执行某些操作比如from wibble.foo.ping import important_function。但是,尝试此操作会导致No module named wibble.foo.ping

我确定我遗漏了文档中的某些内容,因为这一定是可行的。我对modulenamespace之间的区别也有点模糊,我的背景是c#.net,所以这里的任何类比都是有用的。

1 个答案:

答案 0 :(得分:2)

你需要将wibble添加到python路径(参见the official documentation),其中一种方法是

import sys
sys.path.append('/path/to/wibble')

另一种方法是使用环境变量PYTHONPATH

export PYTHONPATH=$PYTHONPATH:/path/to/wibble