python2.7 import 无法导入当前文件夹内的 .py 文件「简单易懂,非常有效」

今天遇到了 python2.7 import 无法导入当前文件夹内的 .py 文件文件。明明 a.py 和 b.py 在同一个文件夹内,但是 b.py 一直不能导入 a.py ,网上搜的博客太过于理论,为方便后来人,特意写出此次的解决办法,非常简单易懂且有效。办法如下:

我们假设

a.py

print 'test1234-a'

b.py

import a

运行报错:

ImportError: No module named a

第一步:

在 b.py 中输入下面的语句,查看目前 python 调包时能访问哪些路径。

#import a
import sys
import os

print sys.path

输出:

['/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages']

可以看到输出的 list 里并没有你目前 a.py 和 b.py 的路径!!!!

所以,你只需要在 b.py 中加上目前 a.py 所在的绝对路径就可以啦~

例如,a.py 和 b.py 在 /data/workspace/test 文件夹内,那么 b.py 就变为了:

import a
import sys
import os

sys.path.append('/data/workspace/test')
print sys.path

此时,你会发现 import a 可以正常执行了,因为在 python 调包的查找路径包含了你的 a.py 所在的路径。

至此,问题就解决啦。

------------------ 分割线-------------------

当然,如果你说你不知道目前 a.py 所在的绝对路径是什么,那么就在 a.py 中加上下面这个语句,就可以直接输出 a.py 所在的路径了

import os
path1=os.path.abspath('.')

print path1

 

你可能感兴趣的:(问题解决办法)