0

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

建议?

4

3 回答 3

2

用这个..

import sys

sys.path.append("/home/bradfordgp/Documents/matrix")
import vec
于 2013-07-25T11:23:15.233 回答
2
import sys
sys.path.append("/home/bradfordgp/Documents/matrix")
import vec

无需更改目录,只需将位置添加到 python 将在导入时搜索的位置

在这里查看更多

于 2013-07-25T11:23:23.350 回答
0

在交互模式下,import将尝试从当前目录导入模块os.chdir。但在非交互模式下,它会失败并仍然从上一个目录中搜索。你可以从这个 issue看到更多的讨论。在非交互模式下,你最好按照别人说的去做。

于 2013-07-25T11:31:32.963 回答