Вы можете использовать модуль os
.
>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'
Но если речь идет о поиске других модулей: вы можете установить переменную среды, называемую PYTHONPATH
, под Linux будет как
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
Затем интерпретатор также ищет это место для модулей import
ed.
edit
В Windows:
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
(снято из http://docs.python.org/using/windows.html )
edit 2
... и даже лучше: используйте virtualenv
и virtualenv_wrapper
, это позволит вам создать среду разработки, в которой вы можете добавлять пути к модулю по своему усмотрению (add2virtualenv
) без загрязнения вашей установки или «нормальной» рабочей среды.
http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html
Проблема с import counter
состоит в том, что пространство имен внутри counter.py будет изменено на ваше текущее пространство имен, поскольку вы импортируете его в текущее пространство имен.
Однако, если все, что вы хотите сделать, это просто посмотреть результат counter.py, вы можете просто использовать функцию exec()
для ее отдельного выполнения. Это не изменит его пространство имен.
Пример:
В counter.py :
a = 1
b = 10
for i in range(b):
print('\na = ', a)
print('globals = ', globals())
a += 1
print('\na = ', a)
print('globals = ', globals())
В other_script.py :
exec(open('counter.py').read())