Проблеми з доріжками Eclipse і Python…


3

Я запускаю деякі скрипти python на сервері, вони знаходяться під сховищем cvs і, з різних причин, використовують абсолютні імена шляхів.

Я намагаюся використовувати затьмарення як редактор - я перевіряю проекти, але при їх запуску я вважаю, що файли не знаходяться там, де їх очікує код. ('/home/staff/root/analysis/test.txt, а не' ../test.txt ')

Чи є спосіб отримати затьмарення, щоб обдурити пітона в мисленні, що існує інша структура каталогів? Якщо я зробив глобальний пошук / заміни '/ home / staff / root / analysis /' для '..', це зробить справу, але це не виглядає дуже гуру-подібно ...

якісь ідеї?

Відповіді:


1

Я не маю відповіді на ваше питання у вузькому сенсі. У мене є дві пропозиції, які можуть досягти того самого кінця.

Пропозиція 1: Символьна лінія

Якщо залежність файлу кореняється в загальному дереві (або невеликій кількості дерев), ви зможете створити символічну посилання на відповідні файли. Отже, скажімо, ви хочете /home/staff/root/analysis/test.txt вирішити в /path/to/working/directory/test.txt, тоді ви можете зробити це:

$ sudo ln -fns /path/to/working/directory /home/staff/root/analysis 

Це вимагає привілеїв root. Ефектом буде те, що весь префікс шляху / home / staff / root / аналіз дозволить / path / to / working / каталог. Це стосується файлів безпосередньо під префіксом, а також всіх підкаталогів.

Пропозиція 2: Підтримуйте параметри конфігурації для залежностей виконання

Якщо файли дійсно потрібні для виконання або тестування, вони повинні бути частиною пакета. Описуючи, як саме це зробити, виходить за рамки цієї відповіді, але ось деякі ресурси, які ви, можливо, вже добре знаєте:

  • Програмування Python http://goo.gl/YoDx6
  • Використовуйте SafeConfigParser для розбору файлів conf / ini (наприклад, data-dir = / home / staff / root / analysis)
  • Використовуйте argparse, щоб отримати параметри з командного рядка / override conf (наприклад, --data-dir = ..)

ОП не роз'яснює, які "різні причини" для жорстких закодованих шляхів, але позбавлення від них (Пропозиція 2), безумовно, є кращим способом перейти до ІМХО.
martineau

0

Якщо ви хочете змінити жорсткі закодовані відносні шляхи на абсолютні, ви завжди можете редагувати текст з будь-якого редактора (sed), але я сумніваюся, що це дійсно потрібно.

Ймовірно, проблема полягає в тому, що ви не знаходитесь в каталозі, на якому ви очікуєте, що програма буде запущена, простий os.chdir дозволить вам це змінити.

Якщо не стежити за порадою Ріса.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.