pasaranax
Май 5, 2010 19:16:51
Вроде не первый день пишу на питоне, а этот вопрос все мучает меня. Например, мне надо импортировать .py-файлы из подпапки plugins в папке программы, я делаю ‘os.listdir(“plugins”)’, чтобы получить их список. И все в порядке, когда я запускаю main.py находясь в его папке, как это делает IDE или даблклик, но если запустить, например, по абсолютному пути, то plugins не находится. И тут я начинаю городить что-то вроде 'os.chdir(os.getcwd() + “/” + “/”.join(sys.argv.split(“/”)))', что уже даже не кроссплатформенно получается. Но ведь, например import знает отуда файлы импортировать, если они рядом с запускаемым лежат, значит есть какой-то человеческий способ обрщаться к соседним файлам?
Сделайте каталог с исполняемым файлом текущим:
os.chdir(os.path.dirname(__file__))
Андрей Светлов
Май 5, 2010 22:17:18
А еще лучше - делать все как положено: package, setup.py, executable script…