文件导入另一个文件
我有一些问题,从一个模块中导入一个类,当我运行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告诉我同样的错误。我想我不知道如何组织一个模组。
问题是您当前的工作目录是相对于test_or.py
。将perceptron.py
中的行更改为:
from mymodule.neuron import Neuron
谢谢,它的工作原理!然而,我不明白为什么,如果perceptron.py和neuron.py都在同一个模块(和在同一个文件夹中),为什么我必须指定模块的名称? – 2015-02-11 18:53:59
因为您基于当前的工作目录进行导入。如果你从'test_or.py'开始,即'。/'(你从它开始的目录),即使'perceptron.py'在'。/ mymodule /' – 2015-02-11 18:55:19
您确定'test_or.py'是否具有该导入语句? '因为错误信息与你写的 – Railslide 2015-02-11 16:57:51
Ops不匹配,你说得对,我纠正了 – 2015-02-11 17:07:04
你有一个大写'N',是叫做neuron.py或Neuron.py的文件吗? – 2015-02-11 17:07:32