Windows 7でPython 3.2を使用しています。PythonShellを開いたときに、現在のディレクトリがどのようなものであるかを確認し、自分のモジュールが存在する別のディレクトリに変更する方法を教えてください。
os
モジュールを使うことができます。
>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'
しかし、それが他のモジュールを見つけることに関するものであれば、LinuxではPYTHONPATH
という環境変数を設定できます。
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
それから、インタプリタはここでもimport
edモジュールを検索します。 Windowsでも同じ名前になると思いますが、変更方法はわかりません。
編集
Windowsの場合
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
( http://docs.python.org/using/windows.html から取得)
編集2
virtualenv
とvirtualenv_wrapper
を使用すると、インストール環境や「通常の」作業環境を汚染することなく、モジュールパスを自由に追加できる開発環境(add2virtualenv
)を作成できます。
http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html
欲しい
import os
os.getcwd()
os.chdir('..')
>>> import os
>>> os.system('cd c:\mydir')
実際、os.system()
は、dirを変更するだけでなく、windowsコマンドPromptが実行できるすべてのコマンドを実行できます。
Pythonで現在の作業ディレクトリを変更する最も簡単な方法は 'os'パッケージを使うことです。以下は、Windowsコンピュータの例です。
# Import the os package
import os
# Confirm the current working directory
os.getcwd()
# Use '\\' while changing the directory
os.chdir("C:\\user\\foldername")
現在のディレクトリを変更することは、Pythonでモジュールを見つけることに対処する方法ではありません。
そうではなく、Pythonがどのモジュールをインポートするかを見つける方法については、 モジュール検索パス のドキュメントを参照してください。
これは 標準モジュール セクションからの関連ビットです:
変数sys.pathは、インタプリタのモジュールの検索パスを決定する文字列のリストです。環境変数PYTHONPATHから取られたデフォルトパス、またはPYTHONPATHが設定されていない場合は組み込みデフォルトから初期化されます。標準のリスト操作を使ってそれを修正することができます。
>>> import sys
>>> sys.path.append('/ufs/guido/lib/python')
現在のディレクトリの取得と設定についてのあなたの最初の質問に答えて:
>>> help(os.getcwd)
getcwd(...)
getcwd() -> path
Return a string representing the current working directory.
>>> help(os.chdir)
chdir(...)
chdir(path)
Change the current working directory to the specified path.
もしあなたがimport os
なら現在の作業ディレクトリを得るためにos.getcwd
を使うことができ、あなたのディレクトリを変えるためにos.chdir
を使うことができます
これを試すことができます:
import os
current_dir = os.path.dirname(os.path.abspath(__file__)) # Can also use os.getcwd()
print(current_dir) # prints(say)- D:\abc\def\ghi\jkl\mno"
new_dir = os.chdir('..\\..\\..\\')
print(new_dir) # prints "D:\abc\def\ghi"