Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仍有",__init_quo()关键字必须是字符串;在python2.7-回顾板中_Python_Django_Review Board - Fatal编程技术网

仍有",__init_quo()关键字必须是字符串;在python2.7-回顾板中

仍有",__init_quo()关键字必须是字符串;在python2.7-回顾板中,python,django,review-board,Python,Django,Review Board,我正在尝试安装ReviewBoard(),运行它时遇到了“init()关键字必须是字符串”问题 我读到这是python2.6中常见的问题。我已经检查过了,我有python2.6,所以我安装了python2.7,但问题仍然存在 [Fri Jan 30 16:02:11 2015] [error] mod_wsgi (pid=12875): Exception occurred processing WSGI script '/srv/www/htdocs/tools/reviewboard/htd

我正在尝试安装ReviewBoard(),运行它时遇到了“init()关键字必须是字符串”问题

我读到这是python2.6中常见的问题。我已经检查过了,我有python2.6,所以我安装了python2.7,但问题仍然存在

[Fri Jan 30 16:02:11 2015] [error] mod_wsgi (pid=12875): Exception occurred processing WSGI script '/srv/www/htdocs/tools/reviewboard/htdocs/reviewboard.py'.
[Fri Jan 30 16:02:11 2015] [error] Traceback (most recent call last):
[Fri Jan 30 16:02:11 2015] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/handlers/wsgi.py", line 187, in __call__
[Fri Jan 30 16:02:11 2015] [error]     self.load_middleware()
[Fri Jan 30 16:02:11 2015] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/handlers/base.py", line 45, in load_middleware
[Fri Jan 30 16:02:11 2015] [error]     mw_class = import_by_path(middleware_path)
[Fri Jan 30 16:02:11 2015] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/utils/module_loading.py", line 21, in import_by_path
[Fri Jan 30 16:02:11 2015] [error]     module = import_module(module_path)
[Fri Jan 30 16:02:11 2015] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/utils/importlib.py", line 40, in import_module
[Fri Jan 30 16:02:11 2015] [error]     __import__(name)
[Fri Jan 30 16:02:11 2015] [error]   File "/usr/local/lib/python2.7/site-packages/ReviewBoard-2.0.12-py2.7.egg/reviewboard/admin/middleware.py", line 23, in <module>
[Fri Jan 30 16:02:11 2015] [error]     from reviewboard.admin.checks import check_updates_required
[Fri Jan 30 16:02:11 2015] [error]   File "/usr/local/lib/python2.7/site-packages/ReviewBoard-2.0.12-py2.7.egg/reviewboard/admin/checks.py", line 41, in <module>
[Fri Jan 30 16:02:11 2015] [error]     from djblets.siteconfig.models import SiteConfiguration
[Fri Jan 30 16:02:11 2015] [error]   File "/usr/local/lib/python2.7/site-packages/Djblets-0.8.14-py2.7.egg/djblets/siteconfig/models.py", line 28, in <module>
[Fri Jan 30 16:02:11 2015] [error]     from django.contrib.sites.models import Site
[Fri Jan 30 16:02:11 2015] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/contrib/sites/models.py", line 58, in <module>
[Fri Jan 30 16:02:11 2015] [error]     class Site(models.Model):
[Fri Jan 30 16:02:11 2015] [error]   File "/usr/local/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/models/base.py", line 96, in __new__
[Fri Jan 30 16:02:11 2015] [error]     new_class.add_to_class('_meta', Options(meta, **kwargs))
[Fri Jan 30 16:02:11 2015] [error] TypeError: Error when calling the metaclass bases
[Fri Jan 30 16:02:11 2015] [error]     __init__() keywords must be strings
我还尝试使用:

WSGIPythonHome /usr/local/lib/python2.7
WSGIPythonPath /usr/local/lib/python2.7
但它给了我:

[Fri Jan 30 17:01:38 2015] [error]  mod_wsgi (pid=11500): Target WSGI script '/srv/www/htdocs/tools/reviewboard/htdocs/reviewboard.py' cannot be loaded as Python module.
[Fri Jan 30 17:01:38 2015] [error]  mod_wsgi (pid=11500): Exception occurred processing WSGI script '/srv/www/htdocs/tools/reviewboard/htdocs/reviewboard.py'.
[Fri Jan 30 17:01:38 2015] [error] Traceback (most recent call last):
[Fri Jan 30 17:01:38 2015] [error]   File "/srv/www/htdocs/tools/reviewboard/htdocs/reviewboard.py", line 3, in <module>
[Fri Jan 30 17:01:38 2015] [error]     import pkg_resources
[Fri Jan 30 17:01:38 2015] [error] ImportError: No module named pkg_resources
[Fri Jan 30 17:01:38 2015][error]mod_wsgi(pid=11500):目标wsgi脚本'/srv/www/htdocs/tools/reviewboard/htdocs/reviewboard.py'不能作为Python模块加载。
[Fri Jan 30 17:01:38 2015][error]mod_wsgi(pid=11500):处理wsgi脚本'/srv/www/htdocs/tools/reviewboard/htdocs/reviewboard.py'时发生异常。
[Fri Jan 30 17:01:38 2015][error]回溯(最近一次通话):
[Fri Jan 30 17:01:38 2015][error]文件“/srv/www/htdocs/tools/reviewboard/htdocs/reviewboard.py”,第3行,在
[Fri Jan 30 17:01:38 2015][错误]导入PKU资源
[Fri Jan 30 17:01:38 2015][error]ImportError:没有名为pkg_resources的模块
重新安装安装工具()没有帮助

当我运行python2.7或python2.6表单控制台并导入pkg_资源时,没有错误


你知道这里出了什么问题吗?

这个错误产生如下(这是Python 2.7.9,但没那么重要)

此函数将打印我们传递给它的任何内容。在Python中,我们可以手动指定关键字args,或者解压dict

kwargs = {'a': 1, 'b': 2}
function(**kwargs)
I got args: 
I got kwargs: a=1, b=2
一切都是洁净的。但是,dict更灵活,可以接受任何哈希类型作为键,而不仅仅是字符串。如果我们这样做会发生什么

kwargs[(0, 1)] = 'five'    # tuples are hashable and can be dict keys
现在,如果我们调用函数:

function(**kwargs)
我们得到:

TypeError: function() keywords must be strings
因为它试图解压成
函数(a=1,b=2,(0,1)='five')
,这当然毫无意义


希望这能有所帮助。

如果你把它打印出来,kwargs的值是多少
kwargs
是一种dict,它可以将任何可哈希类型(如元组)作为键,但**解包为函数关键字参数时只允许使用字符串键。。。。它没有任何意义,只是Python允许它:
dict(**{(0,1):4})
。。。Python允许元组作为dict键,因为它们是不可变的。这是明智的,有大量的用例。因此,是的,您可以将元组作为键传递给dict构造函数,因为它们可以是dict键!该语言中没有其他“函数”以您描述的方式运行。遗憾的是,这意味着dict的构造函数与所有其他函数不同,您无法实现实现dict接口的类。一旦你使用dict,你就必须永远使用dict。
function(**kwargs)
TypeError: function() keywords must be strings