2016-05-17 47 views
1

我一直在試圖做一個簡單的Python模塊導入,並且遇到了這個簡單操作的問題。在〜/ .bashrc中使用PYTHONPATH導入Python模塊不起作用

我有如下的目錄結構:

/home/username/Desktop/project 
    - src/ 
    - src_a.py 
    - __init__.py 
    - bin/ 
    - __init__.py 
    - app.py 

我加/home/username/Desktop/project/srcPYTHONPATH,如下所示:在我~/.bashrc接着是$ source ~/.bashrc

export PYTHONPATH="${PYTHONPATH}:/home/username/Desktop/project/src" 

我仍然無法在app.py或其他地方找到該模塊。我的編輯器似乎也無法識別(自動完成)模塊。我搜索了多個相關的問題,並指出了相同的過程。我錯過了什麼嗎?

+0

我建議去掉'bash'標籤,除非你能確認是t他bash代碼真的沒有做它應該做的。如果你運行'env | grep PYTHONPATH',是你期望顯示的值嗎?如果是這樣,不是bash問題。 –

+0

'env | grep PYTHONPATH'顯示路徑,繼續並刪除'bash'標籤....謝謝:) – lordlabakdas

+0

app.py中的'import'行究竟是行不通的? –

回答

3

已創建包名爲srcbin。如果你想從包中導入的東西,你需要將你的PYTHONPATH設置爲包含包的目錄的目錄,在這種情況下:

export PYTHONPATH=${PYTHONPATH}:/home/username/Desktop/project 

現在你應該可以導入這樣的:

from src import src_a 

此外,由於bin是在同一個目錄中的包,你可以從它導入對象:

from bin import app 
+0

你是對的....謝謝!該模塊似乎得到導入,並能夠成功導入它們。但是,我的編輯似乎仍然沒有自動完成這些功能。我嘗試了兩種不同的(Atom和Spyder),都失敗了。 – lordlabakdas

+0

我終於把它與Atom一起工作了!還有一個額外的設置,我們可以指定我們想要的特定軟件包('/ home/username/Desktop/project')並自動完成工作!不知道爲什麼它不會自動從'PYTHONPATH'中選取它。再次感謝,這個答案解決了我的問題。 :) – lordlabakdas