2014-02-18 42 views
1

我試圖安裝一個django-cms變體(w)),並讓所有的東西都運行起來,直到我做'./manage.py syncdb'。在那一點,我得到的回溯如下:SyntaxError:在Django上運行syncdb時無效的語法

Traceback (most recent call last): 
    File "./manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/opt/software/virt_env/virt1/lib/python2.6/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line 
    utility.execute() 
    File "/opt/software/virt_env/virt1/lib/python2.6/site-packages/django/core/management/__init__.py", line 392, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/opt/software/virt_env/virt1/lib/python2.6/site-packages/django/core/management/__init__.py", line 272, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/opt/software/virt_env/virt1/lib/python2.6/site-packages/django/core/management/__init__.py", line 75, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/opt/software/virt_env/virt1/lib/python2.6/site-packages/django/utils/importlib.py", line 40, in import_module 
    __import__(name) 
    File "/opt/software/virt_env/virt1/lib/python2.6/site-packages/south/management/commands/__init__.py", line 10, in <module> 
    import django.template.loaders.app_directories 
    File "/opt/software/virt_env/virt1/lib/python2.6/site-packages/django/template/loaders/app_directories.py", line 23, in <module> 
    mod = import_module(app) 
    File "/opt/software/virt_env/virt1/lib/python2.6/site-packages/django/utils/importlib.py", line 40, in import_module 
    __import__(name) 
    File "/opt/software/virt_env/virt1/src/wagtail/wagtail/wagtailsearch/__init__.py", line 1, in <module> 
    from indexed import Indexed 
    File "/opt/software/virt_env/virt1/src/wagtail/wagtail/wagtailsearch/indexed.py", line 43 
    indexed_fields = {field: dict(type="string") for field in indexed_fields} 
               ^
SyntaxError: invalid syntax 

似乎for循環語法是好的...任何想法?或者是Python 2.6.6和python27之間的語法發生了巨大的變化?

我正在PYTHON 2.6.6和1.6.1 DJANGO在RHEL 6.4(2.6.32-358.el6.x86_64)運行,Postgres的8.4.18

任何意見或想法,將不勝感激

回答

0

dictionary comprehensions were added in Python 2.7。你正在運行2.6。所以,你需要改變這一行:

indexed_fields = {field: dict(type="string") for field in indexed_fields} 

進入這個:

indexed_fields = dict((field, dict(type="string")) for field in indexed_fields) 
+0

感謝您的回覆迅速...我想它有一些東西做的版本。不幸的是,RHEL僅附帶Python 2.6(除了新的軟件集合),但我對語法進行了更改,並且所有工作都完美無瑕。請注意,在prod中部署Python27。 – djfidelio

+0

是的,我出於完全相同的原因在2.6環境中停留在我的環境中 – mhlester

相關問題