Pycharm не может открыть manage.py задача

в одном из моих проектов , я не могу открыть консоль управления задач. Он работает для других проектов, но не для этого. Раньше это работало, но недавно прекратилось. Я пробовал использовать старые версии проекта, но он все еще сломан. Я получаю эту ошибку:

    Failed to get real commands on module "Visdjango": python process died with code 1: Traceback (most recent call last):
  File "C:Program Files (x86)JetBrainsPyCharm 4.5.1helperspycharmmanage_tasks_provider.py", line 22, in <module>
    parser.report_data(dumper)
  File "C:Program Files (x86)JetBrainsPyCharm 4.5.1helperspycharmdjango_manage_commands_provider_parserparser.py", line 40, in report_data
    module_to_use.process_command(dumper, command, command.create_parser("", command_name))
  File "C:Program Files (x86)JetBrainsPyCharm 4.5.1helperspycharmdjango_manage_commands_provider_parser_optparse.py", line 23, in process_command
    dumper.set_arguments(command.args)
  File "C:Program Files (x86)JetBrainsPyCharm 4.5.1helperspycharmdjango_manage_commands_provider_xml.py", line 95, in set_arguments
    self.__command_element.setAttribute("args", VersionAgnosticUtils().to_unicode(command_args_text))
  File "C:Program Files (x86)JetBrainsPyCharm 4.5.1helperspycharmutils.py", line 36, in to_unicode
    return unicode(obj.decode("utf-8"))
AttributeError: 'list' object has no attribute 'decode'

4 ответов


установить версия 4.5.3 RC

Если вы используете виртуальную среду, убедитесь, что ваш интерпретатор проекта (настройки > проект:... > Интерпретатор проекта) указывает на исполняемый файл python в нем (например, my_virtual_env/bin/python3.4).

Если вы используете виртуальную машину, вам также необходимо указать интерпретатор проекта на версию python в виртуальной среде под виртуальной машиной. Если вы используете Vagrant, это легко, как при попытке добавить новый интерпретатор PyCharm позволяет выбрать Vagrant, а затем просматривать файловую систему VM, чтобы указать на файл, который вам нужен.


Это похоже на ошибку в новом manage.py задачи интеграции PyCharm 4.5. Пожалуйста, сообщите об этом в отслеживание проблем PyCharm.


Я сегодня столкнулся с той же проблемой. После отладки pycharm django command runner я обнаружил некоторые проблемы. Итак, проблемы в моем проекте были:

  1. список, а не кортежи или задает. В моих командах django для вариантов выбора я иногда использую кортежи, иногда списки. И runner работает нормально только со списками. Если вы будете использовать любой другой sturcture для выбора, вы получите ошибку. Вы можете увидеть это в your_pycharm_dir/helpers/pycharm/django_manage_command_provider/_parse/_utils.py строка 26 assert isinstance(opt.choices, list), "Choices should be list"
  2. команда args должна быть строкой. Если у вас есть что-то подобное в команду class Command(BaseCommand): args= ['app_label', 'model_name', ] вы получите сообщение об ошибке. Аргументы должны быть строками

Если вы хотите отладить pycharm django manage.py задача runner вы можете начать сyour_pycharm_dir/helpers/pycharm/manage_py_task_provider.py. И оберните парсер в строку 22 в try кроме try: dumper = _xml.XmlDumper() parser.report_data(dumper) print(dumper.xml) except Exception: pass


обновите _utils.py в YOUR_PYCHARM_INSTALLATION_DIR\helpers\pycharm\django_manage_commands_provider\_parser\_utils.py

и изменяет код в строке 20:

assert isinstance(opt.choices, list), "Choices should be list"

С

assert isinstance(opt.choices, (list, tuple)), "Choices should be list or tuple"