Я використовую Python 3.2 в Windows 7. Коли я відкриваю оболонку Python, як я можу знати, що таке поточний каталог, і як я можу змінити його в інший каталог, де є мої модулі?
Я використовую Python 3.2 в Windows 7. Коли я відкриваю оболонку Python, як я можу знати, що таке поточний каталог, і як я можу змінити його в інший каталог, де є мої модулі?
Відповіді:
Ви можете використовувати os
модуль.
>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'
Але якщо мова йде про пошук інших модулів: Ви можете встановити змінну середовища, що називається PYTHONPATH
, під Linux було б як
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
Потім інтерпретатор також шукає в цьому місці import
редакторські модулі. Я думаю, що ім'я було б однакове під 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
PYTHONPATH
, але зауважте, що в ОП вказано Windows ...
sys.path
всередині вашого сценарію.
PYTHONPATH
глобально, якщо у вас встановлено більше одного Python (або у вас встановлені програми, які поєднують з собою Python - іншими словами, ви ніколи не дізнаєтесь): це може зламати вашу установку таємничими способами
ти хочеш
import os
os.getcwd()
os.chdir('..')
os.chdir('C:/Users/Ajeya/Documents')
, або os.chdir('C:\\Users\\Ajeya\\Documents')
, або os.chdir(r'C:\Users\Ajeya\Documents')
.
os.getcwd()
лише з метою налагодження, щоб ми могли побачити, що таке робочий каталог, перш ніж його змінити. Код фактично змінити cwd
простоos.chdir('..')
>>> import os
>>> os.system('cd c:\mydir')
Насправді, os.system()
можна виконати будь-яку команду, яку може виконати командна команда Windows, а не просто змінити dir.
Зміна поточного каталогу - це не спосіб вирішити питання пошуку модулів в 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 sys sys.path.append('/home/g/PycharmProjects/your_project/')
Найпростіший спосіб змінити поточний робочий каталог в 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")
Ви можете спробувати це:
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"