今天遇到了 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