【问题标题】:Invalid app name Django-CMS无效的应用程序名称 Django-CMS
【发布时间】:2015-05-31 10:48:21
【问题描述】:

在带有内核 3.18.7、python3、pip3 的 Raspbian 上使用 Django-CMS 3.0 安装文档。当我跑步时

djangocms -p . mysite

我明白了:

~/django/env$ sudo djangocms -p . mysite
Traceback (most recent call last):
  File "/usr/local/bin/djangocms", line 9, in <module>
    load_entry_point('djangocms-installer==0.7.2', 'console_scripts', 'djangocms')()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 337, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2280, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1990, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/local/lib/python3.2/dist-packages/djangocms_installer/main.py", line 8, in <module>
    from . import config, django, install
  File "/usr/local/lib/python3.2/dist-packages/djangocms_installer/config/__init__.py", line 101
    sys.stderr.write(u"Project name '%s' is not a valid app name, "
SyntaxError: invalid syntax

注意:我从~/django/env 运行它。

【问题讨论】:

  • 这是完整的错误吗?
  • 错过了一行,我已经用它更新了帖子......这是一个 SyntaxError。

标签: python django debian pip django-cms


【解决方案1】:

Python3 不喜欢 DjangoCMS 3 使用的 unicode 助手:

# First of all, check if the project name is valid
if not validate_project(args.project_name):
    sys.stderr.write(u"Project name '%s' is not a valid app name, "
                     u"or it's already defined. "
                     u"Please use only numbers, letters and underscores.\n"
                     % args.project_name)
    sys.exit(3)

字符串之前的那些'u'给出了python 3的语法错误。你可以直接在那个文件中修复它,检查Django CMS并请求修复,或者使用较低的python版本,如2.7

这很奇怪,因为这里似乎python3支持DjangoCMS https://www.djangopackages.com/python3/

我刚刚用 python3.2 解释器做了一些测试:

>>> sys.stderr.write(u"Hello ")
  File "<stdin>", line 1
    sys.stderr.write(u"Hello ")
                             ^
SyntaxError: invalid syntax
>>> sys.stderr.write("Hello ")
6
Hello >>> 

【讨论】:

  • 这是我最初的想法,但尝试不同的名称并没有帮助。事实上,我尝试了 django-cms 3.0 doc --> mysite 中提供的名称。还是一样的错误。
  • 哦,我看到语法错误,它与项目名称没有任何关系,可以吗,看起来你的 python 版本和 django cms 有问题,尽管我检查了 DjangoCMS 是否支持python3,没关系。你能用python 2.7检查吗?或尝试编辑此文件 /usr/local/lib/python3.2/dist-packages/djangocms_installer/config/__init__.py 并删除“u”。我将编辑我以前的帖子以使其更清晰
  • 还要检查代码是否仍在内部,如果不是 validate_project(args.project_name):所以您的项目名称仍未验证,您应该尝试打印/调试它
【解决方案2】:

您应该将 Python 版本更新到 3.3 或 3.4。 django CMS 和 djangocms-installer 都不支持 Python 3.2。

正如@lapinkoira 所建议的,您看到的具体问题是由u''-prefixes 引起的。不过,这些已在 Python 3.3 中恢复,以便更轻松地同时支持 Python 2.6+ 和 Python 3.3+(另请参阅 PEP 414

【讨论】:

  • 谢谢。我也会试试的。 @lapinkoira 的建议解决了这个问题,但升级到 3.3/3.4 可能是一个更具可扩展性的解决方案。
猜你喜欢
  • 2019-01-25
  • 1970-01-01
  • 2013-10-11
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多