IDLE中的ImportError

时间:2013-07-25 11:20:51

标签: python linux python-idle importerror

我认为自己是python中的中间用户,而且这是一个新用户。在Linux上测试IDLE(Python 3.2.3)中的代码。这是整个脚本:

Python 3.2.3 (default, Apr 10 2013, 05:29:11) 
[GCC 4.6.3] on linux2
Type "copyright", "credits" or "license()" for more information.
==== No Subprocess ====
>>> from os import listdir, getcwd, chdir
>>> chdir('Documents/matrix')
>>> getcwd()
'/home/bradfordgp/Documents/matrix'
>>> listdir('.')
['__init__.py', 'vec.zip', 'hw1.pdf', 'politics_lab.pdf', 'submit_hw1.py', 'submit_politics_lab.py', 'test_vec.py', 'Week1', 'Week0', 'python_lab.py~', 'Week2', 'vec.pdf', '__pycache__', 'hw1.zip', 'politics_lab.zip', 'voting_record_dump109.txt', 'my_stories.txt~', 'hw1.py', 'politics_lab.py', 'submit_vec.py', 'vec.py']
>>> from vec import Vec
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    from vec import Vec
ImportError: No module named vec
>>> 

我已导航到正确的目录,我从同一目录导入,并且vec.py存在。为什么不在本地目录中找到文件?从终端窗口命令行运行此脚本可以正常工作。

建议?

3 个答案:

答案 0 :(得分:2)

使用此.. ..

import sys

sys.path.append("/home/bradfordgp/Documents/matrix")
import vec

答案 1 :(得分:2)

import sys
sys.path.append("/home/bradfordgp/Documents/matrix")
import vec

只需将位置添加到python将在导入时搜索的位置

,而不是更改到目录

查看更多here

答案 2 :(得分:0)

在交互模式下,import将尝试在os.chdir之后从当前目录导入模块。但在非交互模式下,它将失败并仍然从上一个目录中搜索。您可以从this issue查看更多讨论。在非交互模式下,你最好做别人提到​​的事情。