我正在嘗試創建我的第一個高級python項目,但我很苦惱與導入很長時間。Python高級導入問題
有人能描述我在Python進口的使用情況如何?在官方網頁上找到有關Python導入文檔也不是那麼suffucient我...
下面是一個例子:
我有以下來源結構:
$ ls -ltrR
.:
total 1
drwx------+ 1 Administrators None 0 Nov 15 14:09 b
-rwx------+ 1 Administrators None 24 Nov 15 14:10 a.py
./b:
total 6
-rwx------+ 1 Administrators None 0 Nov 15 14:08 c.py
-rwx------+ 1 Administrators None 16 Nov 15 14:10 __init__.py
drwx------+ 1 Administrators None 0 Nov 15 14:10 __pycache__
-rwx------+ 1 Administrators None 61 Nov 15 14:10 b.py
及的內容文件:
$ cat a.py
import b
b.B().printC()
$ cat b/b.py
import c
class B:
def printC(self):
print(c.C().get())
$ cat b/c.py
class C():
def get(self):
return 'This is C'
$ cat __init__.py
from .b import *
當我啓動a.py它說:ImportError: No module named 'c'
。 當我啓動b.py時,它說一切正常。
在b.py當我修改導入另一種解決方案,以「進口BC」 - >在這種情況下,當我打電話a.py它會工作,但是當我打電話只是b.py它是不會因爲b.py不知道b軟件包。
爲什麼我需要開始a.py和b.py也? a.py應該是UT的執行者,而b.py應該是UT。 這就是爲什麼我可能會打電話給所有的UT並啓動a.py,並且也可能發生我剛剛啓動特定的UT(b.py)。
from b import b 是不夠的,因爲b文件夾是一個包含很多UTs的文件夾,我不想一一列出UTs .. btw我試過了你的建議,但它不好,錯誤是相同。來自b import *的 仍然不正確。 ...感謝tuts我會檢查它們 – vpas
我在你的代碼上運行了你的代碼,它工作正常。你正在使用哪個版本的Python? – kartikg3
$ python --version Python 3.3.2 (也許我做錯了什麼,你能分享一下你的代碼嗎?) – vpas