Структура папки:
src
+ root
+ nested
++ myprogram.py
++ helper.py
++ res
+++ excluded.txt
+++ whitelist.txt
Случай 1 - Создайте проект PyDev в eclipse. Запустите программу PyDev. Укажите основной модуль и каждый. Главный модуль - myprogram.py. При запуске с использованием eclipse я получаю ошибку - IOError: [Errno 2] Нет такого файла или каталога: '.\Res\excluded.txt' excluded.txt указан как = > excluded_words_file = r '.\res\excluded.txt', внутри myprogram.py
Случай 2. Запустите script myprogram.py с помощью командной строки. Работает отлично.
Единственное различие заключается в том, что Eclipse также использует контроль источника SVN для этого проекта. Поэтому я попытался отключить проект из репозитория. Но все тот же вопрос.
Итак, что я могу сделать неправильно в настройке Eclipse? Спасибо.
Быстрый отладка с помощью
import os
print os.getcwd()
должен позволить вам видеть, что eclipse не работает из того же каталога, что и вы, когда вы вызываете его из командной строки.
Из модуля python → щелкните правой кнопкой мыши → свойства → параметры запуска/отладки → аргументы python run → , вы можете изменить рабочий каталог. ИМХО - это не очень хорошая идея, лучше меняйте программу, чтобы она читала с абсолютного пути, чтобы она работала независимо от того, где она развернута.
Звучит для меня как проблема пути. Опубликуйте то, что вы видите, когда делаете
import sys
print sys.path
OP говорит, что sys.path
выводит следующие
C:\Documents and Settings\sumod_pawgi\workspace\SWCTester\src\root\nested
C:\eclipse\plugins\org.python.pydev.debug_2.1.0.2011052613\pysrc
C:\Documents and Settings\sumod_pawgi\workspace\SWCTester\src
C:\Python25\Lib\site-packages
C:\Python25
C:\Python25\DLLs
C:\Python25\lib
C:\Python25\lib\lib-tk
C:\Python25\lib\plat-win
C:\WINDOWS\system32\python25.zip
C:\eclipse\plugins\org.python.pydev_2.0.0.2011040403\PySrc
C:\Python25\Lib\site-packages\py2exe
Из того, что я вижу, я могу определить как проблему: ваш каталог res
не находится на вашем пути. Это можно устранить одним из двух способов:
sys.path.append('path/to/res/directory')
res
в путь в конфигурациях запуска PyDevИЛИ
src
как рабочий каталог. Попробуйте изменить путь кexcluded_words_file = r'nested\res\excluded.txt'
и проверьте, работает ли он.