2015-12-16 3 views
16

В последнее время я не могу использовать относительные пути в своем коде при использовании PyCharm. Например, простой open('test.txt', 'r') не будет работать, после чего я уверен, что файл существует на том же уровне, что и файл запуска py. PyCharm вернет эту ошибку.Текущий рабочий каталог PyCharm

FileNotFoundError: [Errno 2] No such file or directory:

После прочтения ответов онлайн на StackOverflow, я попробовал несколько вариантов, включая:

  • Изменение test.txt к ./test.txt
  • закрытия проекта, удалив папку .idea, откройте папку с кодом.
  • Переустановка, а также установка последней версии PyCharm.
  • Недействительные кэши и перезагрузка.

Ни один из этих вариантов не работал на меня. Могу ли я сказать PyCharm, чтобы обновить текущий рабочий каталог (или даже увидеть, где он думает о текущей рабочей директории)?

Заранее благодарен!

Редактировать: Следует отметить, что запуск сценария в окне терминала будет работать. Это, по-видимому, проблема с PyCharm, а не с скриптом.

+2

вы можете поместить это в свой сценарий, чтобы увидеть текущий рабочий каталог 'импорта ОС печати (os.getcwd()) ' – Dan

+0

Интересно, он говорит, что это в 'C: \ Файлы программы (x86) \ JetBrains \ PyCharm 5.0.2 \ jre \ jre \ bin' – qwertyuip9

+0

Вы работаете с повышенными разрешениями в командной строке? Если вы используете систему Unix, то вы должны проверить свои права на файл – Dan

ответ

16

У меня есть Pycharm 4.5, поэтому все могло измениться.

Попробуйте Настройки> Проект> Структура проекта

В этом диалоговом окне выберите папку, которая имеет исходный код в него, а затем нажмите на синюю папку в меню, чтобы отметить его как папку «источник». Я считаю, что это исправляет множество вопросов пути в PyCharm

Вот ссылка на «содержание корней»: https://www.jetbrains.com/pycharm/help/content-root.html

+0

Это было похожее исправление, которое я только что нашел ([ссылка здесь] (http://stackoverflow.com/) Вопросы/30353714/python-flask-app-runs-from-wrong-folder-after-run-by-pycharm-on-127-0-0-1)), мне пришлось добавить рабочий каталог, нажав на проект имя в правом верхнем углу и редактирование его конфигураций. Похоже, что интуитивно необходимо добавить этот дополнительный шаг - возможно, возникли некоторые проблемы при создании проекта в первую очередь. Я буду считать ваши правильными, так как он был самым близким! – qwertyuip9

+0

К сожалению, это не сработало для меня на OSX - хотя у меня был корень моего проекта, установленного как папка источника, где мой скрипт, Runner не смог найти сценарий.Единственное решение, которое я нашел, было @ andere внизу, где вы явно задали рабочий каталог по абсолютному пути. Я не уверен, что это ломается, когда проект перемещается ... – meowsqueak

+0

@meowsqueak Рад, что вы сработали ... С вашей проблемой я также обычно называю «os.chir (directory_path)», используя путь к каталогу, который я разделял с ' __file__'. Это помогает при запуске скрипта вне IDE и в том случае, если сценарий вызывается из каталога, отличного от того, где находится скрипт и текстовый файл. – Dan

3

__file__ относится к файлу путь. Таким образом, вы можете использовать следующую команду, чтобы ссылаться файл в том же каталоге:

import os 

dirpath = os.path.dirname(__file__) 
filepath = os.path.join(dirpath, 'test.txt') 
open(filepath, 'r') 
+0

Мне нравится ваше решение лучше, чем у меня :) Я пытался держать его на уровне Пичарма, хотя хаха – Dan

+0

Спасибо! Моя проблема была более сосредоточена в PyCharm, но хорошо знать, что я тоже могу использовать модуль os! – qwertyuip9

18

Изменить: Run> Edit Configurations> Работа каталога, который устанавливает рабочий каталог для конкретного проекта. (Это на Mac)

Смежные вопросы