代码之家  ›  专栏  ›  技术社区  ›  Franck Dernoncourt

安装allennlp==0.3.0时,我应该使用哪些版本的sanic cors、sanic和sanic插件框架?

  •  1
  • Franck Dernoncourt  · 技术社区  · 6 年前

    哪些版本的python包 sanic-cors , sanic sanic-plugins-framework 安装时要用吗 allennlp==0.3.0 使用python 3.6还是3.7?

    当我跑步时:

    conda create --name selector-py36 python=3.6 
    source activate selector-py36
    pip install allennlp==0.3.0
    

    我收到错误消息:

    sanic-plugins-framework 0.6.3.dev20180717 has requirement sanic>=0.7.0, but you'll have sanic 0.6.0 which is incompatible.
    sanic-cors 0.9.6 has requirement sanic>=0.8.1, but you'll have sanic 0.6.0 which is incompatible.
    

    以后它会阻止我的程序依靠Allennlp运行( RuntimeError: You cannot use Sanic-CORS with sanic < v0.7.0 ):

    (selector-py36) dernon@ilcompn0:/mnt/ilcompnnco/selector$ 
          python -m allennlp.run train data/allen_config_test.json --serialization-dir scratch
    Traceback (most recent call last):
      File "/mnt/ilcompnnco/anaconda3/envs/sensei-selector-py36b/lib/python3.6/runpy.py", line 193, in _run_module_as_main
        "__main__", mod_spec)
      File "/mnt/ilcompnnco/anaconda3/envs/sensei-selector-py36b/lib/python3.6/runpy.py", line 85, in _run_code
        exec(code, run_globals)
      File "/mnt/ilcompnnco/anaconda3/envs/sensei-selector-py36b/lib/python3.6/site-packages/allennlp/run.py", line 10, in <module>
        from allennlp.commands import main  # pylint: disable=wrong-import-position
      File "/mnt/ilcompnnco/anaconda3/envs/sensei-selector-py36b/lib/python3.6/site-packages/allennlp/commands/__init__.py", line 6, in <module>
        from allennlp.commands.serve import Serve
      File "/mnt/ilcompnnco/anaconda3/envs/sensei-selector-py36b/lib/python3.6/site-packages/allennlp/commands/serve.py", line 25, in <module>
        from allennlp.service import server_sanic
      File "/mnt/ilcompnnco/anaconda3/envs/sensei-selector-py36b/lib/python3.6/site-packages/allennlp/service/server_sanic.py", line 19, in <module>
        from sanic_cors import CORS
      File "/mnt/ilcompnnco/anaconda3/envs/sensei-selector-py36b/lib/python3.6/site-packages/sanic_cors/__init__.py", line 11, in <module>
        from .decorator import cross_origin
      File "/mnt/ilcompnnco/anaconda3/envs/sensei-selector-py36b/lib/python3.6/site-packages/sanic_cors/decorator.py", line 15, in <module>
        from .extension import cors
      File "/mnt/ilcompnnco/anaconda3/envs/sensei-selector-py36b/lib/python3.6/site-packages/sanic_cors/extension.py", line 326, in <module>
        instance = cors = CORS()
      File "/mnt/ilcompnnco/anaconda3/envs/sensei-selector-py36b/lib/python3.6/site-packages/sanic_cors/extension.py", line 139, in __init__
        raise RuntimeError("You cannot use Sanic-CORS with sanic < v0.7.0")
    RuntimeError: You cannot use Sanic-CORS with sanic < v0.7.0
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Franck Dernoncourt    6 年前

    allennlp==0.3.0 没有适当的依赖关系:

    • 它安装 sanic-cors 0.9.6 ,这需要 sanic>=0.8.1 但是 Allennlp==0.3.0 要求 sanic>=0.6.0 .
    • 它安装 Sanic-Plugins-Framework==0.6.4.dev20181101 会导致一些 ImportError: cannot import name 'logger' 具有 sanic-cors==0.9.3 .

    要解决此问题:

    pip install allennlp==0.3.0   # this will install sanic-cors==0.9.6, sanic-0.6.0 
                                  # and Sanic-Plugins-Framework==0.6.4.dev20181101
    pip install sanic-cors==0.9.3 # this will uninstall sanic-0.6.0 and install sanic-0.8.3 
    pip install Sanic-Plugins-Framework==0.6.3.dev20180717 # this will install sanic-0.8.3
    pip install sanic==0.6.0