2015-02-11 155 views
0

我有一些問題,從一個模塊中導入一個類,當我運行test_or.py:文件導入另一個文件

. 
├── mymodule 
│   ├── __init__.py 
│   ├── neuron.py 
│   └── perceptron.py 
└── test_or.py 

每個文件都有這些import語句:

test_or.pyfrom mymodule.perceptron import Perceptron

perceptron.pyfrom neuron import Neuron

neuron.py進口只從模塊

標準__init__.py是空

的錯誤是:

Traceback (most recent call last): 
    File "test_or.py", line 1, in <module> 
    from mymodule.perceptron import Perceptron 
    File "/home/andrea/ann/mymodule/perceptron.py", line 1, in <module> 
    from neuron import Neuron 
ImportError: No module named 'neuron' 

如果我運行從文件夾perceptron.py那裏是neuron.py它的工作原理正確,但如果我從「主」文件夾運行它Python告訴我同樣的錯誤。我想我不知道如何組織一個模組。

+1

您確定'test_or.py'是否具有該導入語句? '因爲錯誤信息與你寫的 – Railslide 2015-02-11 16:57:51

+0

Ops不匹配,你說得對,我糾正了 – 2015-02-11 17:07:04

+0

你有一個大寫'N',是叫做neuron.py或Neuron.py的文件嗎? – 2015-02-11 17:07:32

回答

0

問題是您當前的工作目錄是相對於test_or.py。將perceptron.py中的行更改爲:

from mymodule.neuron import Neuron 
+0

謝謝,它的工作原理!然而,我不明白爲什麼,如果perceptron.py和neuron.py都在同一個模塊(和在同一個文件夾中),爲什麼我必須指定模塊的名稱? – 2015-02-11 18:53:59

+0

因爲您基於當前的工作目錄進行導入。如果你從'test_or.py'開始,即'。/'(你從它開始的目錄),即使'perceptron.py'在'。/ mymodule /' – 2015-02-11 18:55:19

相關問題