【问题标题】:Fig Python 3 Compatible?图 Python 3 兼容?
【发布时间】:2015-01-24 19:29:26
【问题描述】:

我有一个运行 python 3.4 的 django 应用程序,我想使用 Fig 来帮助为我的应用程序组件设置 dockerized 容器。 当我运行fig up 时,出现以下错误:

Recreating app_db_1...
Recreating app_search_1...
Creating app_web_1...
Traceback (most recent call last):
  File "/usr/local/Cellar/fig/1.0.1/libexec/bin/fig", line 9, in <module>
    load_entry_point('fig==1.0.1', 'console_scripts', 'fig')()
  File "/usr/local/Cellar/fig/1.0.1/lib/python2.7/site-packages/fig-1.0.1-py2.7.egg/fig/cli/main.py", line 31, in main
  File "/usr/local/Cellar/fig/1.0.1/lib/python2.7/site-packages/fig-1.0.1-py2.7.egg/fig/cli/docopt_command.py", line 21, in sys_dispatch
  File "/usr/local/Cellar/fig/1.0.1/lib/python2.7/site-packages/fig-1.0.1-py2.7.egg/fig/cli/command.py", line 28, in dispatch
  File "/usr/local/Cellar/fig/1.0.1/lib/python2.7/site-packages/fig-1.0.1-py2.7.egg/fig/cli/docopt_command.py", line 24, in dispatch
  File "/usr/local/Cellar/fig/1.0.1/lib/python2.7/site-packages/fig-1.0.1-py2.7.egg/fig/cli/command.py", line 56, in perform_command
  File "/usr/local/Cellar/fig/1.0.1/lib/python2.7/site-packages/fig-1.0.1-py2.7.egg/fig/cli/main.py", line 427, in up
  File "/usr/local/Cellar/fig/1.0.1/lib/python2.7/site-packages/fig-1.0.1-py2.7.egg/fig/project.py", line 174, in up
  File "/usr/local/Cellar/fig/1.0.1/lib/python2.7/site-packages/fig-1.0.1-py2.7.egg/fig/service.py", line 199, in recreate_containers
  File "/usr/local/Cellar/fig/1.0.1/lib/python2.7/site-packages/fig-1.0.1-py2.7.egg/fig/service.py", line 176, in create_container
  File "/usr/local/Cellar/fig/1.0.1/lib/python2.7/site-packages/fig-1.0.1-py2.7.egg/fig/service.py", line 370, in _get_container_create_options
TypeError: unhashable type: 'dict'

这是因为与 Python 3 不兼容吗? IE。有什么方法可以使用 fig 来帮助构建我的应用程序,还是我不走运? Fig是使用自制软件安装的。

这是我的无花果文件:

db:
    image: kartoza/postgis
web:
    build: .
    command: python manage.py runserver:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    links:
      - db
      - search
    environment:
      - ALLOWED_HOSTS:
      - STRIPE_CLIENT_ID:
      - STRIPE_CLIENT_SECRET:
      - GOOGLE_API_KEY:
search:
    image: dockerfile/elasticsearch
    links:
      - db

【问题讨论】:

  • 我对 fig 不熟悉,但似乎他们 test their code with Python 3,所以我不认为这是 Python 3 的问题。这个错误看起来不像是典型的 Python-3 兼容性问题。

标签: python django docker fig


【解决方案1】:

原来问题不在于 Python 的版本,而在于我的 fig 文件。

图文件不应在环境变量前面有破折号。修正后的fig文件如下:

db:
    image: kartoza/postgis
web:
    build: .
    command: python manage.py runserver:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    links:
      - db
      - search
    environment:
      ALLOWED_HOSTS:
      STRIPE_CLIENT_ID:
      STRIPE_CLIENT_SECRET:
      GOOGLE_API_KEY:
search:
    image: dockerfile/elasticsearch
    links:
      - db

Fig 是一个用 Python 2.7 编写的工具,在 Python 3 版本中不可用,但这并不意味着它与 Python 3 项目不兼容,因为它没有集成到项目代码中。它是一个单独的工具,由 python 2.7 独立运行。

【讨论】:

    【解决方案2】:

    包名中包含提示:fig-1.0.1-py2.7.egg

    您似乎安装了 fig 的 Python 2 版本。尝试在 Python 3 环境中使用 pip install fig 进行安装。

    【讨论】:

    • 据我所知,fig 只有 Python 2 版本
    • @rfj001:不,Homebrew 仅提供 Python 2 版本。该库可以很好地安装到 Python 3 中。
    • @rfj001:这就是为什么我说“使用pip 手动安装它”。 pip 将为您的 Python 版本获取正确的版本(或在仅存在 2.7 Python 版本时尝试转换它)。
    • 当我运行pip3 install fig 时,出现语法错误。我真的不认为有Python3版本的fig...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    相关资源
    最近更新 更多