# добавление папки в которой искать модули
sys.path.append(path)
# определение директории файла
os.path.dirname(path)
# смена рабочей директории
os.chdir(directory)
# переменная, в которой хранится путь до текущего скрипта
__file__
# делаем, чтобы все относительные пути
# вычислялись относительно пути до скрипта
os.chdir(os.path.dirname(__file__))
Для подавления папки в sys.path обычно используется insert, а не append, так как требуется, чтобы поиск модулей начинался не с дефолтных папок.
ОтветитьУдалить__file__ -- имя файла текущего модуля. Разница важна.
Делать os.chdir надо в крайнем случае и обязательно где-нить явно в начале скрипта -- иначе могут быть феерические глюки при попытке использовать модуль, делающий это. А если таких модуля два? "Явное лучше неявно" (с) Zen Python
http://asvetlov.blogspot.com/2010/05/blog-post.html
http://asvetlov.blogspot.com/2010/05/2.html
http://asvetlov.blogspot.com/2010/05/3.html
Учту, но лично мне так и надо.
ОтветитьУдалить> os.path.dirname(__file__)
ОтветитьУдалитьЛучше использовать os.path.dirname(os.path.realpath(__file__)) иначе могут быть проблемы. Я сейчас точный пример не припомню. Без realpath у меня кажется глючил код под mod_wsgi.