Форум сайта python.su
сейчас расскажу в чем дело)))
собрал при помощи py2exe консольный исполняемый файл. сама программа прекрасно работает. первым параметром получает имя файла, что-то с ним делает и при работе использует файл ttt.txt, который располагается в той же папке, что и программа и при вызове указывается относительный путь.
проблема заключается в следующем. при запуске этой программы из консоли вот так:
cd c:\blabla\
prog.exe argfile1.txt
sys.argv равен “argfile1.txt” и файл ttt.txt находится.
но при вызове программы путем перетаскивания мышкой argfile1.txt на prog.exe:
sys.srgv равен абсолютному пути файла argfile1.txt, то есть “с:\blabla\argfile.txt” и файл ttt.txt не находится. а ищется он на рабочем столе.
надо чтобы программа работала в обоих случаях. раньше такого не наблюдалось. пока видится только 1 путь решения)
Офлайн
Я решил эту проблему так:
import some_module
print some_module.__file__
Офлайн
py2exe убирает атрибут __file__ из объектов-модулей.
вобщем надо использовать sys.executable. всегда возвращает абсолютный путь к exe.
http://www.py2exe.org/index.cgi/WhereAmI
Офлайн
Может быть я что то не так делал, но у меня этот способ работал и работает в одной из программ которую сделал и пользуюсь. И работает он и при перетаскивании и по клику на ярлык :-)
Офлайн