我在使用python的一个目录中发现了一些问题。我希望它使用我的dev目录中的模块。在
在系统路径返回一堆dir,像这样['', '/usr/lib/python26.zip', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/site-packages' etc
这很好,它使用当前目录作为查找的第一个位置(至少我是这样理解它的)。在
现在如果我创建一个名为命令.py在当前的目录中,事情如我所料。在
^{pr2}$
然后我退出pythonshell,并启动另一个。我就这样做。在>>> import foo.bar.commands
现在,我希望它从当前目录下到./foo/bar/并从那里获得commands模块。我得到的是这个>>> foo.bar.commands.__file__
'/usr/lib/python2.6/site-packages/foo/bar/commands.pyc'
即使在我当前的目录中有一个./foo/bar/命令.py在
使用imp.find_模块()和imp.load U模块()我可以正确加载本地模块。真正有趣的是(虽然我不知道这是什么意思)在这个序列中打印出来的最后一行>>> import foo.bar.commands
>>> foo.bar.commands.__file__
'/usr/lib/python2.6/site-packages/foo/bar/commands.pyc'
>>> foo.bar.__file__
'/usr/lib/python2.6/site-packages/foo/bar/__int__.pyc'
>>> foo.__file__
'./foo/__init__.pyc'
因此,如果它可以在本地目录中找到foo/init.pyc,为什么不能在本地目录中找到其他文件呢?在
干杯