django_graphene 在错误的地方寻找包 "six"?

django_graphene looking for package "six" in the wrong place?

我正在尝试使用 graphene-django,但 "six" 软件包存在一些问题。它已安装,但它作为自己的软件包安装,graphene-django 似乎在 django.utils

下期待它
  File "C:\Users\mjnic\.virtualenvs\phoenix-demo-C42C_PgQ\lib\site-packages\graphene_django\settings.py", line 18, in <module>
    from django.utils import six
ImportError: cannot import name 'six' from 'django.utils' (C:\Users\mjnic\.virtualenvs\phoenix-demo-C42C_PgQ\lib\site-packages\django\utils\__init__.py)

六人路径:

>>> import six
>>> print(six.__file__)
C:\Users\mjnic\.virtualenvs\phoenix-demo-C42C_PgQ\lib\site-packages\six.py

我已经检查了 graphene_django 的源代码,在 settings.py 中它似乎专门查看了 django 路径。

This module provides the `graphene_settings` object, that is used to access
Graphene settings, checking for user settings first, then falling
back to the defaults.
"""
from __future__ import unicode_literals

from django.conf import settings
from django.test.signals import setting_changed
from django.utils import six

我正在使用 pipenv 来管理我的环境,我已经卸载并重新安装了六个,各种石墨烯包现在尝试解决这个问题好几次,但无济于事。

那么我怎样才能移动 six 的安装,使其位于 django.utils.six,或者更改设置,以便 graphene-django 查看当前安装的位置(不是'看起来不可能查看源代码)?

经过多次挫折,我找到了答案。我的Pipfile实际上指定了Django = "*"(是的,我知道......),并且似乎six已从版本3中的django.utils中删除。将版本指定为<3.0 降级似乎解决了我的问题!

有关 graphene-django 的问题报告,请参见此处。对于面临同样问题的其他人来说可能很方便。

https://github.com/graphql-python/graphene-django/issues/771