2009-04-28 67 views
2

好吧,我發現這個問題,這是一個環境問題,我不得不在sys.path中相同的模塊(減去options.py),它是從那裏,而不是導入。謝謝大家的幫助。import語句失敗的一個模塊

我有一系列的import語句,其中最後將不起作用。任何想法爲什麼? options.py和其他一切都在同一個目錄中。

from snipplets.main import MainHandler 
from snipplets.createnew import CreateNewHandler 
from snipplets.db import DbSnipplet 
from snipplets.highlight import HighLighter 
from snipplets.options import Options 

導入錯誤:沒有模塊命名的選項

我__init__.py在snipplets目錄下的文件是空白。

+0

發佈options.py。您沒有提供足夠的信息來幫助我們。 – 2009-04-28 10:28:12

+0

沒什麼特別的:http://github.com/woodenbrick/snipplets/blob/2c13a6de0ae5c6cb752bbc37e2620e823e498c97/snipplets/options.py – wodemoneke 2009-04-28 10:40:05

+1

dev和master分支衝突? – SilentGhost 2009-04-28 10:50:10

回答

2

我懷疑你的其他的進口的一個重新定義snipplets與賦值語句。或者您的其他模塊之一更改爲sys.path


編輯

「這樣的流程是這樣的:添加snipplets包路徑進口......」

不要修改sys.path - 這樣存在問題。修改site.path導致路徑上什麼是或不是什麼的含糊不清以及它們的順序如何。

要做的最簡單,最可靠,最明顯,最可控制的事情如下。選擇一個。

  • 定義PYTHONPATH(一次,在您的程序外部)。一個簡單的環境變量,與站點包上的安裝幾乎相同。

  • 在站點安裝包你的包。

1

請問以下工作option變量?

import snipplets.options.Options 

如果是這樣,您的其他snipplets文件中的一個很可能將命名爲選項的全局變量。

1

你在窗戶上嗎?你可能想嘗試在__初始化__ .py文件定義__所有__列表喜歡指出here。除非你正在導入*,否則它不應該有所作爲,但是我已經看到模塊不能導入,除非它們在那裏定義。

其次,你可以嘗試建立一個virtualenv。使用大量站點範圍的python包可能導致這些事情。

最後,確保選項的權限設置正確。我花了幾個小時試圖弄清楚這些事情,只是爲了發現這是我沒有權限導入它的問題。