2011-12-08 5 views
3

私はインターネットとチュートリアルをスクリーニングしながら2日間以上これを理解しようとしていましたが、私は自分の問題を解決していません。私は本当の初心者くさいよ、まだ本当に私がやっているかわからない...Python IDLEを使用している場合、別の場所からモジュールをインポートするには?

私が使用するソフトウェア: のMac OS X 10.6 のPython v3.2.2 インタラクティブインタプリタ(アイドル)

問題: IDLEのデフォルトのディレクトリは/ Users/ME/Documents /です。拡張子.pyのファイルは、このディレクトリにあるときにのみ開くことができます。しかし、私はこのソフトウェアと関係があるすべての.pyファイルなどを保存したいフォルダを作った。現在のところ、IDLEは私が選択したディレクトリの.pyファイルをロードできません。

私は最初にIDLEに追加しました: import sys。 sys.path.append(「ユーザ/ MYDIR /」) のsys.path

はしかし、2010年から既存のスレッドで私が読んでのsys.pathはONLY通訳のためである、と私は場合は、これを変更すること私はPYTHONPATH環境変数を変更する必要があります。

PYTHONPATH = "/ ME /ドキュメント/ mydirの:$ PYTHONPATH" 輸出PYTHONPATHを

しかし、私はこれを使用するかどうかは混乱しているとの回答を見つけることができません私の次の質問: 1)PYTHONPATH(.py?)は、インストール時に既にコンピュータ上に存在していますプログラム? YESの場合はどこですか?私はどこでもそれを見つけることができません。 いいえの場合は、作成する必要があります。しかし、IDLEがデフォルト以外のディレクトリからファイルをロードできるように、どこに何がコンテンツになるべきですか?太字の単語だけを含めるべきですか?

私は私の問題を明確にしたいと思う。

乾杯

答えて

7

loadの意味がわかりません。これは、IDLEエディタでOpenCloseのファイルを意味する可能性があります。または、Python importステートメントを使用して、既存のPythonモジュールを他のファイルから読み込むことができます。私は後者を仮定します。loadは、importを意味します。

Mac OS XでIDLEを起動するには、一般的に2つの方法があります.1つは端末セッションのコマンドラインからです。 pythonを使ってPython 3.2をインストールした場合。orgインストーラは、デフォルトで/usr/local/bin/idle3.2と入力すると動作します。もう1つの方法は、/Applications/Python 3.2からIDLE.appを起動することです。つまり、そのアイコンをダブルクリックします。ファイルのデフォルトディレクトリがDocumentsフォルダだと言うので、IDLE.appは現在の作業ディレクトリとしてDocumentsを設定しています。これは* Open *と* Save *のデフォルトディレクトリになります。 Pythonのsys.pathの最初のディレクトリとして自動的に追加されます。は、import ingのときにモジュールを検索するために使用するディレクトリのリストです。

sys.pathに他のディレクトリを追加する場合は、上記のようにPYTHONPATH環境変数を使用します。これを行う標準的な方法は、シェル起動スクリプトにexport PYTHONPATH=...定義を追加することです(.bash_profileなど)。ただし、IDLE.appを使用した場合はシェルが含まれないため、.bash_profileのコマンドは効果がありません。

OS XのGUIアプリケーションの環境変数を変更する方法はありますが、この場合は、もう1つの方法を使用して、シェルセッションのコマンドラインからIDLEを呼び出します。/usr/local/bin/idle3.2/Applications/Python 3.2フォルダ内でUpdate Shell Profileコマンドを実行した場合(新しい端末セッションを開いた場合)は、ちょうどidle3です。次に、設定したPYTHONPATH環境変数がそのIDLEに継承されます。 の初期の現在の作業ディレクトリをDocumentsからIDLEのコードを変更する以外に直接変更する方法はありません。コマンド からIDLEを開始すると、シェルの現在の作業ディレクトリが継承されます。

[UPDATE]むしろPYTHONPATHを定義すると浮気よりも、ここでIDLE.appまたはコマンドラインidleのいずれかで動作するはずです別の、さらに簡単に、そしておそらくより良いアプローチがあります。 Python path configuration (.pth) filesuser site-package directoriesを利用しています。 Mac OS X上で標準的なPythonフレームワークbuild 3.2(python.orgインストーラのような)を使用していると仮定すると、永続的に追加するディレクトリのパスファイルをsys.pathに作成します。ターミナルセッションでは:あなたは自分のユーザー名の下にそのPythonの3.2またはIDLEを実行するたびに

mkdir -p ~/Library/Python/3.2/lib/python/site-packages 
cd ~/Library/Python/3.2/lib/python/site-packages 
cat >my_paths.pth <<EOF 
/Users/YOUR_USER_NAME/path/to/your_additional_python_directory_1 
/Users/YOUR_USER_NAME/path/to/your_additional_python_directory_2 
EOF 

、あなたが.pthファイルに追加したディレクトリが自動的にsys.pathに追加されます。

ところで、3.2または2.7より前のバージョンのPythonバージョンのユーザーsite-packagesディレクトリの正確なパスの場所は、若干異なる場合があります。また、他のUnix-yシステムでは、ユーザsite-packageディレクトリのデフォルトの場所は~/.local/lib/python3.2/site-packagesです。

+0

明瞭な説明をいただきありがとうございます!私はIDLE.appをダブルクリックしてIDLEを開いた。私はPYTHONPATH = "/ ME/Documents/Mydir:$ PYTHONPATH" PYTHONPATH "を端末にエクスポートし、端末に 'idle3'と入力した後、IDLEが起動し、ファイルを直接インポートできます。そのディレクトリをIDLEにコピーします。私はbashプロファイルを作成することはできませんが、新しいスクリプトを作成して拡張子.bash_profileを付けると、そのスクリプトは端末を起動しません。私は1)PYTHONPATH =/.. PYTHONPATHをエクスポートし、2)idle3を書きました。アイデア?TY – FlyingDutch

+0

あなたがしていることを伝えるのは難しいことです。 '.bash_profile'の代わりに、私の更新で説明した' .pth'ファイルを作成してみてください。それはより簡単でより簡単なアプローチであり、どちらのIDLEでも動作します。私は最初にそれを考えたかったのですが。 –

+0

ありがとうございます。これはあなたが与えた他の2つのオプションよりもはるかに簡単です。しかし(私はこのプログラムを習っています)、あなたの最初の文章をコピーすると、端末はディレクトリを見つけられません。私の端末は「マイユーザ」ドメイン外のディレクトリには変わりません。私は1)cd〜/ Library/Python/3.2/lib/python/site-packagesと2)cd〜/ Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packagesを試しました。私のmacのsite-packagesへの '本当の'ディレクトリパスです)。私はここに何かを逃していますか – FlyingDutch

0

PYTHONPATHはenvironment variableherehereを参照します)。私は、Macを持っていないが、私はあなたにリンクされているスレッドからあなたが/Me/Documents/mydirからPythonスクリプトを実行できるように

コマンドライン上
launchctl setenv PYTHONPATH=/Me/Documents/mydir:$PYTHONPATH 

のようなものを入力します。または、この行をホームディレクトリの.bashrcというファイルに置きます(~)。このパスは、端末を開くたびに毎回設定されます。 .bashrcとその他の.bash*ファイルの簡単な紹介については、hereを参照してください。希望が役立ちます。

EDITthisも参照してください。

+0

クリス、私は環境変数のアイデアを得ましたが、私はそれをどのように使用するのか分かりません。私の目的は、IDLEが.pyファイルをロードできるディレクトリを追加するだけで、OS Xの変数を変更することではありません。 – FlyingDutch

+0

端末では、あなたはIDLEを意味しますか? launchctl setenv PYTHONPATH =/Me/Documents/mydir:$ PYTHONPATHは私のためには機能しません。エラー 'invalid syntax'を返します。 – FlyingDutch

+0

環境変数は、PythonではなくOSの一部です。 Python IDLEを起動する前に、またはPythonスクリプトを実行する前に、PYTHONPATH環境変数を設定する必要があります。そのため、IDLE内から設定しないでください。ターミナルを開き、 'lauchctl setenv PYTHONPATH =/Me/Documents/mydir:$ PYTHONPATH'と打ち、enterを押してPythonと打ちます。/Me/Documents/mydirのスクリプトを使用できるPythonインタプリタにいなければなりません。 – Chris

関連する問題