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 я обнаружил некоторые проблемы. Итак, проблемы в моем проекте были:
-
список, а не кортежи или задает. В моих командах 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"
-
команда 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"