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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章