В последнее время я не могу использовать относительные пути в моем коде при использовании PyCharm. Например, простое open('test.txt', 'r')
не будет работать - поэтому я уверен, что файл существует на том же уровне, что и запущенный py-файл. PyCharm вернет эту ошибку.
FileNotFoundError: [Errno 2] Нет такого файла или каталога:
Прочитав ответы онлайн в StackOverflow, я попробовал несколько вариантов, включая:
- Изменение
test.txt
на./test.txt
- Закрытие проекта, удаление папки .idea, открытие папки с кодом.
- Переустановка, а также установка последней версии PyCharm.
- Аннулирование кэшей и перезапуск.
Ни один из этих вариантов не работал для меня. Можно ли как-нибудь сказать PyCharm обновить текущий рабочий каталог (или даже посмотреть, где, по его мнению, находится текущий рабочий каталог)?
Заранее спасибо!
Изменить: я должен отметить, что запуск сценария в окне терминала будет работать. Это похоже на проблему с PyCharm, а не со скриптом.
8 ответов
У меня есть Pycharm 4.5, так что все могло бы немного измениться.
Попробуйте перейти в Настройки> Проект> Структура проекта
В этом диалоговом окне выберите папку с исходным кодом, а затем щелкните синюю папку в меню, чтобы отметить ее как «исходную» папку. Я считаю, что это исправляет множество проблем с путями в Pycharm
Вот ссылка на «корни контента»: https://www.jetbrains.com/pycharm/help/ контента root.html
Иногда это не так. Я решил свою проблему, нажав «Выполнить» на панели инструментов Pycharm, а затем «Редактировать конфигурации ...», и я изменил свой интерпретатор на другой действительный. Просто изменение его в настройках не помогает, но эта операция уже делает;)
Небольшое разъяснение для пользователей Mac. В Mac то, что сказал @andere выше, правильно для установки рабочего каталога. Однако, если ваш код находится в другой папке, скажем working_dir/src/
(например, классическая файловая структура java / scala), в этом случае вам все равно нужно установить корневой каталог источников. В PyCharm для Mac это можно сделать, щелкнув правой кнопкой мыши папку src/
> Пометить каталог как> Корень источников. Помог мне с множеством подобных проблем с импортом. Надеюсь, это кому-то поможет.
__file__
указывает путь к файлу. Таким образом, вы можете использовать следующее для ссылки на файл в том же каталоге:
import os
dirpath = os.path.dirname(__file__)
filepath = os.path.join(dirpath, 'test.txt')
open(filepath, 'r')
Текущая версия 2019.2
почему-то игнорирует «исходный корень» из «структуры проекта». Вот как на самом деле обеспечить его соблюдение:
Выполнить -> Изменить конфигурации -> Python -> «Изменить шаблоны» -> заполнить «Рабочий каталог»
У меня тоже была такая же проблема несколько минут назад ... но в последней версии PyCharm она решается простым использованием относительного пути к этому файлу. Например, простой f = open ('test', 'r' ) буду работать.
В PyCharm, нажмите «запустить / редактировать конфигурации ...»
Затем найдите файл скрипта в выпадающем меню «Python». Проверьте запись «Рабочий каталог» и при необходимости измените ее.
Изменить: Выполнить> Изменить конфигурации> Рабочий каталог, который устанавливает рабочий каталог для конкретного проекта. (Это на Mac)
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.