【问题标题】:Cannot import six.python_2_unicode_compatible in Django application无法在 Django 应用程序中导入 Six.python_2_unicode_compatible
【发布时间】:2017-09-17 13:27:32
【问题描述】:

由于对我的 Django 应用程序的新要求,我开始使用 zeep。我像往常一样通过现有的 virtualenv 安装它。 问题是,当我尝试使用 Apache 和 mod_wsgi 部署我的应用程序时,它不起作用,返回以下错误:

ImportError at /prwn/
cannot import name python_2_unicode_compatible

/home/prwn/env/lib/python2.7/site-packages/zeep/wsdl/definitions.py in <module>
from six import python_2_unicode_compatible 

最奇怪的是,当我的应用程序使用 runserver 和相同的 virtualenv 运行时,它运行良好。 我尝试创建一个新的 virtualenv,一个新的 Apache 的虚拟主机,甚至将整个 virtualenv 的权限更改为 777, 还是不行。

我用的是0.23.0 of zeep1.10.0 of 6python 2.7

【问题讨论】:

    标签: python django apache virtualenv zeep


    【解决方案1】:

    嗯,最后我想通了。奇怪的是,当我的应用程序在 Apache 上运行时,它使用了旧版本的六库,该库已全局安装在我的系统上。 我解决了将全局六库升级到新版本的问题,并且成功了。

    【讨论】:

    • 您没有正确配置 mod_wsgi,因此它知道虚拟环境。阅读:modwsgi.readthedocs.io/en/develop/user-guides/…
    • 在 Django 500 错误页面中,它在 Python 路径列表中显示了我的 virtualenv 的站点包文件夹的条目。我认为我正确配置了 virtualenv,还是我错了?
    • 问题在于如何指定虚拟环境的位置。无论您以何种方式使用它,都必须将虚拟环境目录放在sys.path 的末尾。如果使用正确的方法,它应该在开始,因此优先。因此,请检查我链接的文档,并确保您使用的是推荐的方法之一。
    【解决方案2】:

    使用“pip install --upgrade 6”解决了这个问题

    这是因为旧版本的六

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 2017-09-23
      相关资源
      最近更新 更多