2013-07-25 26 views
0

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

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存在。为什么不在本地目录中查找文件?从终端窗口命令行运行此脚本可正常工作。

对此提出建议?

+0

查看[** this **](http://stackoverflow.com/questions/279237/import-a-module-from-a-relative-path)以获取更多详细信息和解答 – Adil

回答

2

使用这个..

import sys 

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

而不是文件的目录,只需添加位置到地方蟒蛇将进口

查看搜索更多here

0

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