Я не совсем уверен, как это искать, поэтому просто опишу ситуацию.

Я использую Python 3.3 для создания кроссплатформенного приложения с использованием tkinter для графического интерфейса и cxfreeze для создания установщика. Теперь меня интересует, как мое приложение узнает, где оно было установлено?

Я планирую распространять некоторые файлы PDF вместе с приложением, но прямой путь к ним будет отличаться у разных пользователей (даже если папка PDF будет иметь одинаковое «расстояние»; после установки она всегда будет находиться на расстоянии одной папки от исполняемого файла).

Итак, как я могу включить эту информацию о пути в свое приложение?

0
PascalVKooten 29 Мар 2013 в 19:24

1 ответ

Лучший ответ

Если ваша файловая система такова:

homedir
  |
  |-bin
  |  |-myapp.py
  |
  |-pdf
     |-file1.pdf

Просто откройте PDF-файл, присвоив переменной относительный путь (в виде строки):

pdf_path = "../pdf/file1.pdf"

Затем используйте внешнюю команду start, вызвав os.system:

import os

os.system("start " + pdf_path)

И у тебя все будет готово

2
MattDMo 29 Мар 2013 в 22:05
Я не понимаю, как я смогу использовать это с import os, os.system("start " + pdf_file), поскольку PDF-файлы нельзя открывать напрямую?
 – 
PascalVKooten
29 Мар 2013 в 20:35
- что вы пытаетесь сделать с os.system("start")?
 – 
MattDMo
29 Мар 2013 в 20:45
- независимо от того, что вы делаете с start, вы можете передать путь к файлу команде, сохранив путь как переменную: pdf_path = '../pdf/file1.pdf' затем запустив команду os.system
 – 
MattDMo
29 Мар 2013 в 21:03
Я пробовал, но может быть, при тестировании он не сработает, а после установки заработает?
 – 
PascalVKooten
29 Мар 2013 в 21:38
Просто настройте фиктивную установку с ожидаемой структурой пути и попробуйте
 – 
MattDMo
29 Мар 2013 в 21:45