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。ただし、非対話モードでは失敗し、以前のディレクトリから引き続き検索されます。この問題からさらに議論を見ることができます。非対話モードでは、他の人が言及したことを行う方がよいでしょう。

于 2013-07-25T11:31:32.963 に答える