Найти - Пользователи
Полная версия: при перетаскивании файла на exe меняется относительный путь
Начало » Python для экспертов » при перетаскивании файла на exe меняется относительный путь
1
Dimka665
сейчас расскажу в чем дело)))
собрал при помощи 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 путь решения)
igor.kaist
Я решил эту проблему так:
import some_module
print some_module.__file__
и далее все относительные пути пишутся с учетом того где лежит твоя прога, а не того откуда она запущена.
У тебя какой путь решения?
Dimka665
py2exe убирает атрибут __file__ из объектов-модулей.
вобщем надо использовать sys.executable. всегда возвращает абсолютный путь к exe.
http://www.py2exe.org/index.cgi/WhereAmI
igor.kaist
Может быть я что то не так делал, но у меня этот способ работал и работает в одной из программ которую сделал и пользуюсь. И работает он и при перетаскивании и по клику на ярлык :-)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB