Pycharm无法打开manage.py任务

时间:2015-05-22 18:44:07

标签: python django pycharm django-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)\JetBrains\PyCharm 4.5.1\helpers\pycharm\manage_tasks_provider.py", line 22, in <module>
    parser.report_data(dumper)
  File "C:\Program Files (x86)\JetBrains\PyCharm 4.5.1\helpers\pycharm\django_manage_commands_provider\_parser\parser.py", line 40, in report_data
    module_to_use.process_command(dumper, command, command.create_parser("", command_name))
  File "C:\Program Files (x86)\JetBrains\PyCharm 4.5.1\helpers\pycharm\django_manage_commands_provider\_parser\_optparse.py", line 23, in process_command
    dumper.set_arguments(command.args)
  File "C:\Program Files (x86)\JetBrains\PyCharm 4.5.1\helpers\pycharm\django_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)\JetBrains\PyCharm 4.5.1\helpers\pycharm\utils.py", line 36, in to_unicode
    return unicode(obj.decode("utf-8"))
AttributeError: 'list' object has no attribute 'decode'

4 个答案:

答案 0 :(得分:2)

安装version 4.5.3 RC

如果您使用的是虚拟环境,请确保您的项目解释程序(设置&gt;项目:...&gt;项目解释程序)指向其中的python可执行文件(例如,my_virtual_env / bin / python3.4)。 / p>

如果您使用的是虚拟机,则还需要将项目解释程序设置指向虚拟机下虚拟环境下的python版本。如果您正在使用Vagrant,这很容易,因为当您尝试添加新的解释器时,PyCharm允许您选择Vagrant,然后浏览VM文件系统以指向您需要的文件。

答案 1 :(得分:2)

YOUR_PYCHARM_INSTALLATION_DIR\helpers\pycharm\django_manage_commands_provider\_parser\_utils.py

中更新您的_utils.py

并更改第20行中的代码:

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

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

答案 2 :(得分:1)

它看起来像是PyCharm 4.5的新manage.py任务集成中的一个错误。请将此问题报告给PyCharm's issue tracker

答案 3 :(得分:1)

我今天遇到了同样的问题。调试pycharm django命令后,我发现了一些问题。 所以我项目中的问题是:

  1. 列表,而不是元组或集。在用于选择选项的django命令中,我有时使用元组,有时使用列表。并且跑步者通常只使用列表。如果您将使用任何其他结构进行选择,您将收到错误消息。您可以在 your_pycharm_dir / helpers / pycharm / django_manage_command_provider / _parse / _utils.py 字符串26 assert isinstance(opt.choices, list), "Choices should be list"
  2. 中看到此信息
  3. 命令args必须是字符串。如果你有这样的命令 class Command(BaseCommand): args= ['app_label', 'model_name', ] 您将收到错误消息。 Args必须是字符串
  4. 如果您需要debug pycharm django manage.py任务运行程序,可以从 your_pycharm_dir / helpers / pycharm / manage_py_task_provider.py 开始。并在try中将解析器包装在字符串22中除外 try: dumper = _xml.XmlDumper() parser.report_data(dumper) print(dumper.xml) except Exception: pass