Pipenv: 実行可胜な゜リュヌションが存圚する堎合、Pipenvはサブ䟝存関係の解決に倱敗したす

䜜成日 2018幎07月17日  Â·  42コメント  Â·  ゜ヌス: pypa/pipenv

これはここで取り組んでいたす https  //github.com/sarugaku/passa

問題の説明

2぀のプロゞェクトがありたす。

.
├── base-proj
│   ├── Pipfile
│   └── Pipfile.lock
└── sub-package
    └── setup.py

2 directories, 3 files

setup.pyは次のようになりたす。

from setuptools import setup

setup(
    name='sub-package',
    version='0.1',
    install_requires=['tensorflow'],
)

そしおPipfile 

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
tensorflow = "==1.8.0"

[dev-packages]

[requires]
python_version = "3.6"

base-projディレクトリからpipenv install -e ../sub-package/を実行するず、次の出力が埗られたす。

Adding -e ../sub-package/ to Pipfile's [packages]...
Pipfile.lock (f43471) out of date, updating to (9beaad)...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.6.0rc0, 1.6.0rc0
There are incompatible versions in the resolved dependencies.
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches tensorboard<1.10.0,<1.9.0,>=1.8.0,>=1.9.0
Tried: 1.6.0, 1.6.0, 1.7.0, 1.7.0, 1.8.0, 1.8.0, 1.9.0, 1.9.0
Skipped pre-versions: 1.0.0a0, 1.0.0a0, 1.0.0a1, 1.0.0a1, 1.0.0a2, 1.0.0a2, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.6.0rc0, 1.6.0rc0
There are incompatible versions in the resolved dependencies.

Pipenvはどのようにしおtensorboardを'<1.10.0,<1.9.0,>=1.8.0,>=1.9.0'解決できたすか どういうわけか、 tensorflow==1.9.0ず1.8.0の䟝存関係tensorboardを取埗し、それらを組み合わせおいるようです。

期埅される結果

メむンプロゞェクトのtensorflow䟝存関係ロックは、 setup.py定矩されおいるものず競合しおいるようです。 具䜓的には、 tensorboardサブ䟝存関係はすぐに解決できなくなるようです以䞋のlock --verbose出力を参照。

実結果

pipenv lock --verbose実行した埌

Locking [dev-packages] dependencies...
Locking [packages] dependencies...
using sources: [{'url': 'https://pypi.org/simple', 'verify_ssl': True, 'name': 'pypi'}]
Using pip: -i https://pypi.org/simple

                          ROUND 1                           
Current constraints:
  file:///Users/tom/projects/pipenv-test/sub-package (from -r /var/folders/9w/twrv54nd0v19gsbjhjs3mlhc0000gn/T/pipenv-btuknzld-requirements/pipenv-lxr0x3iq-constraints.txt (line 3))
  tensorflow==1.8.0 (from -r /var/folders/9w/twrv54nd0v19gsbjhjs3mlhc0000gn/T/pipenv-btuknzld-requirements/pipenv-lxr0x3iq-constraints.txt (line 2))

Finding the best candidates:
  found candidate -e file:///Users/tom/projects/pipenv-test/sub-package (constraint was <any>)
  found candidate tensorflow==1.8.0 (constraint was ==1.8.0)

Finding secondary dependencies:
  tensorflow==1.8.0         requires absl-py>=0.1.6, astor>=0.6.0, bleach==1.5.0, gast>=0.2.0, grpcio>=1.8.6, html5lib==0.9999999, markdown>=2.6.8, numpy>=1.13.3, protobuf>=3.4.0, setuptools, six>=1.10.0, tensorboard<1.9.0,>=1.8.0, tensorflow==1.8.0, termcolor>=1.1.0, werkzeug>=0.11.10, wheel>=0.26

New dependencies found in this round:
  adding ['absl-py', '>=0.1.6', '[]']
  adding ['astor', '>=0.6.0', '[]']
  adding ['bleach', '==1.5.0', '[]']
  adding ['gast', '>=0.2.0', '[]']
  adding ['grpcio', '>=1.8.6', '[]']
  adding ['html5lib', '==0.9999999', '[]']
  adding ['markdown', '>=2.6.8', '[]']
  adding ['numpy', '>=1.13.3', '[]']
  adding ['protobuf', '>=3.4.0', '[]']
  adding ['six', '>=1.10.0', '[]']
  adding ['sub-package', '==0.1', '[]']
  adding ['tensorboard', '<1.10.0,<1.9.0,>=1.8.0,>=1.9.0', '[]']
  adding ['tensorflow', '==1.8.0', '[]']
  adding ['termcolor', '>=1.1.0', '[]']
  adding ['werkzeug', '>=0.11.10', '[]']
  adding ['wheel', '>=0.26', '[]']
Removed dependencies in this round:
Unsafe dependencies in this round:
------------------------------------------------------------
Result of round 1: not stable

                          ROUND 2                           
Current constraints:
  absl-py>=0.1.6
  astor>=0.6.0
  bleach==1.5.0
  gast>=0.2.0
  grpcio>=1.8.6
  html5lib==0.9999999
  markdown>=2.6.8
  numpy>=1.13.3
  protobuf>=3.4.0
  six>=1.10.0
  sub-package==0.1 from file:///Users/tom/projects/pipenv-test/sub-package (from -r /var/folders/9w/twrv54nd0v19gsbjhjs3mlhc0000gn/T/pipenv-btuknzld-requirements/pipenv-lxr0x3iq-constraints.txt (line 3))
  tensorboard<1.10.0,<1.9.0,>=1.8.0,>=1.9.0
  tensorflow==1.8.0 (from -r /var/folders/9w/twrv54nd0v19gsbjhjs3mlhc0000gn/T/pipenv-btuknzld-requirements/pipenv-lxr0x3iq-constraints.txt (line 2))
  termcolor>=1.1.0
  werkzeug>=0.11.10
  wheel>=0.26

Finding the best candidates:
  found candidate absl-py==0.2.2 (constraint was >=0.1.6)
  found candidate astor==0.7.1 (constraint was >=0.6.0)
  found candidate bleach==1.5.0 (constraint was ==1.5.0)
  found candidate gast==0.2.0 (constraint was >=0.2.0)
  found candidate grpcio==1.13.0 (constraint was >=1.8.6)
  found candidate html5lib==0.9999999 (constraint was ==0.9999999)
  found candidate markdown==2.6.11 (constraint was >=2.6.8)
  found candidate numpy==1.14.5 (constraint was >=1.13.3)
  found candidate protobuf==3.6.0 (constraint was >=3.4.0)
  found candidate six==1.11.0 (constraint was >=1.10.0)
  found candidate -e file:///Users/tom/projects/pipenv-test/sub-package (constraint was ==0.1)
Using pip: -i https://pypi.org/simple

                          ROUND 1                           
Current constraints:
  file:///Users/tom/projects/pipenv-test/sub-package (from -r /var/folders/9w/twrv54nd0v19gsbjhjs3mlhc0000gn/T/pipenv-btuknzld-requirements/pipenv-f2vkysg2-constraints.txt (line 3))
  tensorflow==1.8.0 (from -r /var/folders/9w/twrv54nd0v19gsbjhjs3mlhc0000gn/T/pipenv-btuknzld-requirements/pipenv-f2vkysg2-constraints.txt (line 2))

Finding the best candidates:
  found candidate -e file:///Users/tom/projects/pipenv-test/sub-package (constraint was <any>)
  found candidate tensorflow==1.8.0 (constraint was ==1.8.0)

Finding secondary dependencies:
  tensorflow==1.8.0         requires absl-py>=0.1.6, astor>=0.6.0, bleach==1.5.0, gast>=0.2.0, grpcio>=1.8.6, html5lib==0.9999999, markdown>=2.6.8, numpy>=1.13.3, protobuf>=3.4.0, setuptools, six>=1.10.0, tensorboard<1.9.0,>=1.8.0, tensorflow==1.8.0, termcolor>=1.1.0, werkzeug>=0.11.10, wheel>=0.26

New dependencies found in this round:
  adding ['absl-py', '>=0.1.6', '[]']
  adding ['astor', '>=0.6.0', '[]']
  adding ['bleach', '==1.5.0', '[]']
  adding ['gast', '>=0.2.0', '[]']
  adding ['grpcio', '>=1.8.6', '[]']
  adding ['html5lib', '==0.9999999', '[]']
  adding ['markdown', '>=2.6.8', '[]']
  adding ['numpy', '>=1.13.3', '[]']
  adding ['protobuf', '>=3.4.0', '[]']
  adding ['six', '>=1.10.0', '[]']
  adding ['sub-package', '==0.1', '[]']
  adding ['tensorboard', '<1.10.0,<1.9.0,>=1.8.0,>=1.9.0', '[]']
  adding ['tensorflow', '==1.8.0', '[]']
  adding ['termcolor', '>=1.1.0', '[]']
  adding ['werkzeug', '>=0.11.10', '[]']
  adding ['wheel', '>=0.26', '[]']
Removed dependencies in this round:
Unsafe dependencies in this round:
------------------------------------------------------------
Result of round 1: not stable

                          ROUND 2                           
Current constraints:
  absl-py>=0.1.6
  astor>=0.6.0
  bleach==1.5.0
  gast>=0.2.0
  grpcio>=1.8.6
  html5lib==0.9999999
  markdown>=2.6.8
  numpy>=1.13.3
  protobuf>=3.4.0
  six>=1.10.0
  sub-package==0.1 from file:///Users/tom/projects/pipenv-test/sub-package (from -r /var/folders/9w/twrv54nd0v19gsbjhjs3mlhc0000gn/T/pipenv-btuknzld-requirements/pipenv-f2vkysg2-constraints.txt (line 3))
  tensorboard<1.10.0,<1.9.0,>=1.8.0,>=1.9.0
  tensorflow==1.8.0 (from -r /var/folders/9w/twrv54nd0v19gsbjhjs3mlhc0000gn/T/pipenv-btuknzld-requirements/pipenv-f2vkysg2-constraints.txt (line 2))
  termcolor>=1.1.0
  werkzeug>=0.11.10
  wheel>=0.26

Finding the best candidates:
  found candidate absl-py==0.2.2 (constraint was >=0.1.6)
  found candidate astor==0.7.1 (constraint was >=0.6.0)
  found candidate bleach==1.5.0 (constraint was ==1.5.0)
  found candidate gast==0.2.0 (constraint was >=0.2.0)
  found candidate grpcio==1.13.0 (constraint was >=1.8.6)
  found candidate html5lib==0.9999999 (constraint was ==0.9999999)
  found candidate markdown==2.6.11 (constraint was >=2.6.8)
  found candidate numpy==1.14.5 (constraint was >=1.13.3)
  found candidate protobuf==3.6.0 (constraint was >=3.4.0)
  found candidate six==1.11.0 (constraint was >=1.10.0)
  found candidate -e file:///Users/tom/projects/pipenv-test/sub-package (constraint was ==0.1)

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches tensorboard<1.10.0,<1.9.0,>=1.8.0,>=1.9.0
Tried: 1.6.0, 1.6.0, 1.7.0, 1.7.0, 1.8.0, 1.8.0, 1.9.0, 1.9.0
Skipped pre-versions: 1.0.0a0, 1.0.0a0, 1.0.0a1, 1.0.0a1, 1.0.0a2, 1.0.0a2, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.6.0rc0, 1.6.0rc0
There are incompatible versions in the resolved dependencies.
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches tensorboard<1.10.0,<1.9.0,>=1.8.0,>=1.9.0
Tried: 1.6.0, 1.6.0, 1.7.0, 1.7.0, 1.8.0, 1.8.0, 1.9.0, 1.9.0
Skipped pre-versions: 1.0.0a0, 1.0.0a0, 1.0.0a1, 1.0.0a1, 1.0.0a2, 1.0.0a2, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a3, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a4, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a5, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.0.0a6, 1.6.0rc0, 1.6.0rc0
There are incompatible versions in the resolved dependencies.
耇補する手順

耇補する手順を提䟛したす通垞、少なくずもコマンドずPipfileが含たれたす。


$ pipenv --support

Pipenvバヌゞョン '2018.7.1'

Pipenvの堎所 '/usr/local/Cellar/pipenv/2018.7.1/libexec/lib/python3.7/site-packages/pipenv'

Pythonの堎所 '/usr/local/Cellar/pipenv/2018.7.1/libexec/bin/python3.7'

PATH他のPythonむンストヌル

  • 2.7  /usr/local/bin/python2.7
  • 2.7  /usr/local/bin/python2.7
  • 2.7  /usr/bin/python2.7
  • 3.6  /Users/tom/.pyenv/shims/python3.6m
  • 3.6  /Users/tom/.local/share/virtualenvs/base-proj-lBpX7WJ2/bin/python3.6
  • 3.6  /Users/tom/.pyenv/shims/python3.6
  • 3.6  /Users/tom/.pyenv/shims/python3.6
  • 3.7  /usr/local/bin/python3.7m
  • 3.7  /usr/local/bin/python3.7

  • 3.6.5  /Users/tom/.local/share/virtualenvs/base-proj-lBpX7WJ2/bin/python

  • 3.6.5  /Users/tom/.pyenv/shims/python
  • 3.6.5  /Users/tom/.pyenv/shims/python
  • 2.7.15  /usr/local/bin/python
  • 2.7.10  /usr/bin/python
  • 2.7.15  /usr/local/bin/python2
  • 3.6.5  /Users/tom/.local/share/virtualenvs/base-proj-lBpX7WJ2/bin/python3
  • 3.6.5  /Users/tom/.pyenv/shims/python3
  • 3.6.5  /Users/tom/.pyenv/shims/python3
  • 3.7.0  /usr/local/bin/python3

PEP 508情報

{'implementation_name': 'cpython',
 'implementation_version': '3.7.0',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '17.7.0',
 'platform_system': 'Darwin',
 'platform_version': 'Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT '
                     '2018; root:xnu-4570.71.2~1/RELEASE_X86_64',
 'python_full_version': '3.7.0',
 'python_version': '3.7',
 'sys_platform': 'darwin'}

システム環境倉数

  • PATH
  • TERM_PROGRAM
  • TERM
  • SHELL
  • PIP_PYTHON_PATH
  • OP_entry_name
  • TMPDIR
  • OL_client_secret
  • Apple_PubSub_Socket_Render
  • TERM_PROGRAM_VERSION
  • OP_SESSION
  • HOMEBREW_AUTO_UPDATE_SECS
  • TERM_SESSION_ID
  • LC_ALL
  • USER
  • ONFIDO_ROLE
  • SSH_AUTH_SOCK
  • __CF_USER_TEXT_ENCODING
  • nvm_prefix
  • VIRTUAL_ENV_DISABLE_PROMPT
  • VIRTUAL_ENV
  • PIPENV_ACTIVE
  • PWD
  • OL_client_id
  • EDITOR
  • LANG
  • ITERM_PROFILE
  • XPC_FLAGS
  • OL_region
  • PYTHONDONTWRITEBYTECODE
  • XPC_SERVICE_NAME
  • SHLVL
  • PYENV_SHELL
  • HOME
  • COLORFGBG
  • ITERM_SESSION_ID
  • LOGNAME
  • _OLD_VIRTUAL_PATH
  • LC_CTYPE
  • OL_username
  • __pipenv_fish_initial_pwd
  • COLORTERM

Pipenv固有の環境倉数

  • PIPENV_ACTIVE  1

デバッグ固有の環境倉数

  • PATH  /usr/local/Cellar/pipenv/2018.7.1/libexec/tools:/Users/tom/.local/share/virtualenvs/base-proj-lBpX7WJ2/bin:/Users/tom/.pyenv/shims:/usr/local/Cellar/pipenv/2018.7.1/libexec/tools:/Users/tom/.pyenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Wireshark.app/Contents/MacOS
  • SHELL  /usr/local/bin/fish
  • EDITOR  nano
  • LANG  en_US.UTF-8
  • PWD  /Users/tom/projects/pipenv-test/base-proj
  • VIRTUAL_ENV  /Users/tom/.local/share/virtualenvs/base-proj-lBpX7WJ2

Pipfile  '/ Users / tom / projects / pipenv-test / base-proj / Pipfile'

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
tensorflow = "==1.8.0"
sub-package = {editable = true, path = "./../sub-package"}

[dev-packages]

[requires]
python_version = "3.6"

Pipfile.lock  '/Users/tom/projects/pipenv-test/base-proj/Pipfile.lock'

{
    "_meta": {
        "hash": {
            "sha256": "d9be781a0c99deda926abe1f0ad149d718c738ffe906d002d6f79bf053edb66f"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.6"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "absl-py": {
            "hashes": [
                "sha256:e0eb8358b549552b1cc5972350bc3e41dd0a926c15b3ff95ce60f3c78c80824c"
            ],
            "version": "==0.2.2"
        },
        "astor": {
            "hashes": [
                "sha256:95c30d87a6c2cf89aa628b87398466840f0ad8652f88eb173125a6df8533fb8d",
                "sha256:fb503b9e2fdd05609fbf557b916b4a7824171203701660f0c55bbf5a7a68713e"
            ],
            "markers": "python_version != '3.0.*' and python_version != '3.3.*' and python_version != '3.2.*' and python_version != '3.1.*' and python_version >= '2.7'",
            "version": "==0.7.1"
        },
        "bleach": {
            "hashes": [
                "sha256:978e758599b54cd3caa2e160d74102879b230ea8dc93871d0783721eef58bc65",
                "sha256:e67f46adcec78dbc3c04462f3aba3213a673d5652eba2609ed1ef15492a44b8d"
            ],
            "version": "==1.5.0"
        },
        "gast": {
            "hashes": [
                "sha256:7068908321ecd2774f145193c4b34a11305bd104b4551b09273dfd1d6a374930"
            ],
            "version": "==0.2.0"
        },
        "grpcio": {
            "hashes": [
                "sha256:002f9170d8c0c10c33f643240c2332ce6eb8c8cc8c2b08d6a8f3172ef574751b",
                "sha256:0f80b28033105e99e08d84361b899c45bd6eb31d2765ff2ed7cb66b8b1d12820",
                "sha256:1012969abbec9a6c5d7b09ac829df296cb0a2ddebe70dd314abb881fa62cbcc9",
                "sha256:19af04506fec213de9a889343d4b090e9d0b675e1d9b8397ea6fc6521f939a48",
                "sha256:37cdffc26987ae2a077cc80fc0d87273e0e01ba15df40ec0a20d107e635700cf",
                "sha256:4e72b30a276e519d687dc53d86ecf9d65edf31dad473f3bbd041542bbf9df12f",
                "sha256:564499d84c2e90eb87819f7a299eaa2aee32db8208a8e8d00e8941a0c66413c0",
                "sha256:6324581e215157f0fbe335dff2e21a65b4406db98ac7cca05f1e23b4f510b426",
                "sha256:64758d2718f14792286b32d31560edb10c3726ce5d5875c3472c95908b658aeb",
                "sha256:67b36c6b0070ef858e5438e82d3a3fb19db33a174572019744d7b965c95fa9b0",
                "sha256:83766cdfc3492a693902eff193648b3cc9710e4a131815cd0cc60e30e9b7cf8f",
                "sha256:935a0b328b79e03a47d87960836513bab1150d0faab44aff7968f8623ed48d62",
                "sha256:982349cc24df7569ab955bafa3ba7575140db171c3bd757fa135d0c0c0d6990d",
                "sha256:9c79eaca4b0b8fb973c6e0c4c6cd4be44e76dfd09d56cfc7b2a959289fda6682",
                "sha256:9efcdfe1cc1670dde940f86e51fe080184f637106cf9b6d8dfc14cab9660d710",
                "sha256:a24a37e441c36d6605029cfb035806ef4f888a37d757e64fb0488d03c3fff806",
                "sha256:ab33b5965df89fd6e4ea7846cb9a28ece4e6d9ded23434d3321b992051a62de0",
                "sha256:ad6c12e9ab809fd4f8891a085a7655ca2690a5753bb6258d9d602084f610a223",
                "sha256:b1e4c83209bce5548029ed7df2af6a94415bb7dd37a2203183919d1d5a5249c9",
                "sha256:b87cdf8c4291875bda4b2a0f6747cab008fd9ea6c682a43d0869d308a16d0956",
                "sha256:b9e3793e0d1498e5c72993ba91f14e617e06e945d6562716bfbbbc6a9e7ab7de",
                "sha256:ba388412f64d6ac02098fcb77c409896297b058a8942d946bd1999699d35c123",
                "sha256:baaf1a0d5a5d9af67ec3ff0d9dfc1d642e7aba38e59ae60de1c6d1bd46406177",
                "sha256:be0d79c3253f7d23facc4dab96ada086e9b17048a36843041a5fac3bad9415e7",
                "sha256:ce3c23b1110238c1f440cdbceefd0c5fc7fcf3022c82c8a349514038aa69ac3d",
                "sha256:d9b9d309e7db3a988df0d12ba3c1ca4a7059c502c10ce34d4d65779bebbb6949",
                "sha256:ddd489b4730d7eccf9b836216d7137f85b3e68258a292a618a12e9ce5a7bcfb0",
                "sha256:dee025675506fc84f475b9fb0c8ce2cc9b663f9d7c7a22281ba878538be78fe8",
                "sha256:e6ac3198f4174c1b58e3a6b765d0b9cdcead231ba8bf4ddd30709320960b6e39",
                "sha256:e738782d0216087cb7ee9acc54305db9a30bf9a784bff7a407b748a91dd8c942",
                "sha256:f136b98861f27e2628f824c7c7e8d4bce47c9e18953fd00a0aca1d1c9cfd1b6c"
            ],
            "version": "==1.13.0"
        },
        "html5lib": {
            "hashes": [
                "sha256:2612a191a8d5842bfa057e41ba50bbb9dcb722419d2408c78cff4758d0754868"
            ],
            "version": "==0.9999999"
        },
        "markdown": {
            "hashes": [
                "sha256:9ba587db9daee7ec761cfc656272be6aabe2ed300fece21208e4aab2e457bc8f",
                "sha256:a856869c7ff079ad84a3e19cd87a64998350c2b94e9e08e44270faef33400f81"
            ],
            "version": "==2.6.11"
        },
        "numpy": {
            "hashes": [
                "sha256:07379fe0b450f6fd6e5934a9bc015025bb4ce1c8fbed3ca8bef29328b1bc9570",
                "sha256:085afac75bbc97a096744fcfc97a4b321c5a87220286811e85089ae04885acdd",
                "sha256:2d6481c6bdab1c75affc0fc71eb1bd4b3ecef620d06f2f60c3f00521d54be04f",
                "sha256:2df854df882d322d5c23087a4959e145b953dfff2abe1774fec4f639ac2f3160",
                "sha256:381ad13c30cd1d0b2f3da8a0c1a4aa697487e8bb0e9e0cbeb7439776bcb645f8",
                "sha256:385f1ce46e08676505b692bfde918c1e0b350963a15ef52d77691c2cf0f5dbf6",
                "sha256:4130e5ae16c656b7de654dc5e595cfeb85d3a4b0bb0734d19c0dce6dc7ee0e07",
                "sha256:4d278c2261be6423c5e63d8f0ceb1b0c6db3ff83f2906f4b860db6ae99ca1bb5",
                "sha256:51c5dcb51cf88b34b7d04c15f600b07c6ccbb73a089a38af2ab83c02862318da",
                "sha256:589336ba5199c8061239cf446ee2f2f1fcc0c68e8531ee1382b6fc0c66b2d388",
                "sha256:5ae3564cb630e155a650f4f9c054589848e97836bebae5637240a0d8099f817b",
                "sha256:5edf1acc827ed139086af95ce4449b7b664f57a8c29eb755411a634be280d9f2",
                "sha256:6b82b81c6b3b70ed40bc6d0b71222ebfcd6b6c04a6e7945a936e514b9113d5a3",
                "sha256:6c57f973218b776195d0356e556ec932698f3a563e2f640cfca7020086383f50",
                "sha256:758d1091a501fd2d75034e55e7e98bfd1370dc089160845c242db1c760d944d9",
                "sha256:8622db292b766719810e0cb0f62ef6141e15fe32b04e4eb2959888319e59336b",
                "sha256:8b8dcfcd630f1981f0f1e3846fae883376762a0c1b472baa35b145b911683b7b",
                "sha256:91fdd510743ae4df862dbd51a4354519dd9fb8941347526cd9c2194b792b3da9",
                "sha256:97fa8f1dceffab782069b291e38c4c2227f255cdac5f1e3346666931df87373e",
                "sha256:9b705f18b26fb551366ab6347ba9941b62272bf71c6bbcadcd8af94d10535241",
                "sha256:9d69967673ab7b028c2df09cae05ba56bf4e39e3cb04ebe452b6035c3b49848e",
                "sha256:9e1f53afae865cc32459ad211493cf9e2a3651a7295b7a38654ef3d123808996",
                "sha256:a4a433b3a264dbc9aa9c7c241e87c0358a503ea6394f8737df1683c7c9a102ac",
                "sha256:baadc5f770917ada556afb7651a68176559f4dca5f4b2d0947cd15b9fb84fb51",
                "sha256:c725d11990a9243e6ceffe0ab25a07c46c1cc2c5dc55e305717b5afe856c9608",
                "sha256:d696a8c87315a83983fc59dd27efe034292b9e8ad667aeae51a68b4be14690d9",
                "sha256:e1864a4e9f93ddb2dc6b62ccc2ec1f8250ff4ac0d3d7a15c8985dd4e1fbd6418",
                "sha256:e1d18421a7e2ad4a655b76e65d549d4159f8874c18a417464c1d439ee7ccc7cd"
            ],
            "markers": "python_version != '3.0.*' and python_version != '3.3.*' and python_version != '3.2.*' and python_version != '3.1.*' and python_version >= '2.7'",
            "version": "==1.14.5"
        },
        "protobuf": {
            "hashes": [
                "sha256:12985d9f40c104da2f44ec089449214876809b40fdc5d9e43b93b512b9e74056",
                "sha256:12c97fe27af12fc5d66b23f905ab09dd4fb0c68d5a74a419d914580e6d2e71e3",
                "sha256:327fb9d8a8247bc780b9ea7ed03c0643bc0d22c139b761c9ec1efc7cc3f0923e",
                "sha256:3895319db04c0b3baed74fb66be7ba9f4cd8e88a432b8e71032cdf08b2dfee23",
                "sha256:695072063e256d32335d48b9484451f7c7948edc3dbd419469d6a778602682fc",
                "sha256:7d786f3ef5b33a04e6538089674f244a3b0f588155016559d950989010af97d0",
                "sha256:8bf82bb7a466a54be7272dcb492f71d55a2453a58d862fb74c3f2083f2768543",
                "sha256:9bbc1ae1c33c1bd3a2fc05a3aec328544d2b039ff0ce6f000063628a32fad777",
                "sha256:9f1087abb67b34e55108bc610936b34363a7aac692023bcbb17e065c253a1f80",
                "sha256:9fefcb92a3784b446abf3641d9a14dad815bee88e0edd10b9a9e0e144d01a991",
                "sha256:a37836aa47d1b81c2db1a6b7a5e79926062b5d76bd962115a0e615551be2b48d",
                "sha256:cca22955443c55cf86f963a4ad7057bca95e4dcde84d6a493066d380cfab3bb0",
                "sha256:d7ac50bc06d31deb07ace6de85556c1d7330e5c0958f3b2af85037d6d1182abf",
                "sha256:dfe6899304b898538f4dc94fa0b281b56b70e40f58afa4c6f807805261cbe2e8"
            ],
            "version": "==3.6.0"
        },
        "six": {
            "hashes": [
                "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
                "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
            ],
            "version": "==1.11.0"
        },
        "tensorboard": {
            "hashes": [
                "sha256:2651a4d9261a6593cb2c3514576e4bf25e273837c79e98f68a3cf51759f68725",
                "sha256:7776cc8bcfd0d07cd106e9e86c011ab8eca38c97b57f5433b9f0fd6bbf31a36e"
            ],
            "markers": "python_version != '3.0.*' and python_version != '3.3.*' and python_version != '3.2.*' and python_version != '3.1.*' and python_version >= '2.7'",
            "version": "==1.8.0"
        },
        "tensorflow": {
            "hashes": [
                "sha256:1fc4eb267bc973f2a8466778ad0c6f110f8356373e534c8463a7bb9b6d86e5f0",
                "sha256:24c3d3f87dc6108f4de3bbb7f647bcd6f303f874721b176185f260adea88fe40",
                "sha256:3087797a85610b756066df294f98e666e49f4fa60c6e1dbcf4b190b21397af71",
                "sha256:36a6671d39a3aec89cb4cce125e90305c3f8a69da16d2fb72eff40fe478e1de9",
                "sha256:373c637f9c4f06346b1b02e280b30517d262a1651b252ff889f7c22716ef4548",
                "sha256:397c0766e166fb768613b1498a2a6f67eeea077425d234c0138d55e85408473d",
                "sha256:68bda870c355aa64dc3dc377d5b9d13c829281467a7c3b95cb8529031d8f68b2",
                "sha256:899e53e01efcc8e906b3d1f53fe6a6264edf5dfc275b32cadbc6f4e33dca78f7",
                "sha256:92801b9aebcc195d3b5a492d1d46330c47c11c6f0c0f7ab6b605da489482c64e",
                "sha256:d345d296aeb05eeb50d9de43a1dcb66ceaba6a2bd603f58aeefaa07b2c1bfac1",
                "sha256:dccc205e84cd33a240a601046e88eacefe12d677a1bbdf17f0ebafd1a7c84c70",
                "sha256:de51f60021ea8160ea6d0340e827a26331cd549f6e7c470fba7ee83aeab4f818"
            ],
            "index": "pypi",
            "version": "==1.8.0"
        },
        "termcolor": {
            "hashes": [
                "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"
            ],
            "version": "==1.1.0"
        },
        "werkzeug": {
            "hashes": [
                "sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c",
                "sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b"
            ],
            "version": "==0.14.1"
        },
        "wheel": {
            "hashes": [
                "sha256:0a2e54558a0628f2145d2fc822137e322412115173e8a2ddbe1c9024338ae83c",
                "sha256:80044e51ec5bbf6c894ba0bc48d26a8c20a9ba629f4ca19ea26ecfcf87685f5f"
            ],
            "markers": "python_version >= '3'",
            "version": "==0.31.1"
        }
    },
    "develop": {}
}

Dependency Resolution help wanted

最も参考になるコメント

この単玔なシナリオを考えおみたしょう。 パッケヌゞA、B、C、およびDがありたす。

  • AはBずCに䟝存したす。
  • BはCずDに䟝存したす。

そしお、PipfileでAを指定したす。

リゟルバは、ラりンドで動䜜するず考えるこずができたす。 ラりンドごずに、各パッケヌゞの内郚を調べお䟝存関係を芋぀け、リストに远加しお、芋぀からなくなるたで繰り返したす。

R0A。
R1AはBずCに䟝存したす。これで、A、B、Cができたした。
R2BはCずDに䟝存したす。 Cは䜕にも䟝存したせん。 今A、B、C、D。
R3Dは䜕にも䟝存したせん。 それでもA、B、C、D。解決は正垞に終了したした。

それでは、バヌゞョンに぀いお考えおみたしょう。 A、B、Dにはそれぞれ1぀のバヌゞョンがあり簡単にするため、CにはC1ずC2の2぀のバヌゞョンがあるずしたす。

  • AはBずCに䟝存したす。
  • BはCずDに䟝存したすが、C1が必芁です぀たり、䟝存関係ずしおC <2を指定したす。

R0A。
R1AはBずCを望んでいたす。どちらのCを遞択する必芁がありたすか わかりたせん。

Pipenv currentが行っおいるこずは、垞に最新のものを奜むこずです。

R1A、B、C2。
R2BはC1ずDを必芁ずしおいたす。問題が発生したため、C1ずC2を同時にむンストヌルするこずはできたせん。 解決に倱敗したす。

バックトラックで可胜なこずは、ラりンド1でその決定を行う前に保存するこずです。

R1A、B、C ここに保存したす。
R1aA、B、C2。
R2-1aこれは機胜したせん。 負荷。
R1bA、B、C1。
R2-1bA、B、C1、D。成功

これを䞀般化したす。 パッケヌゞXには、v1ではP <5、v2ではP> 5が必芁な堎合がありたす。 最初にv2を遞択するこずもありたすが、それが埌で問題になる堎合おそらく、YはすべおのバヌゞョンでP <5を必芁ずしたす、代わりにXのv1シリヌズをバックトラックしお遞択できたす。 衚瀺されるこれらの競合するバヌゞョン芁件は、通垞、この皮のより耇雑なグラフからのものであり、バックトラックがその解決策です解決策がある堎合。

バックトラッキング解決アルゎリズムは䞻に解決された問題であり、さたざたな蚀語で実装されおいたす。 ただし、Pythonはこの点でさらに䞍足しおいたす。 カクテル皮によっお䜿甚され、詩もロックファむルを䜿甚しお別のツヌル、およびRubyのずほが同様のMolinillo バンドラヌずCocoapodsで䜿甚されるは、私が実䞖界の生産䜿甚䞭知っおいる唯䞀のものです。 ザゟは別ですが、それはさらに初期の段階です。

䞊蚘である皋床明確になっおいただければ幞いです。 これは取り組むのが簡単なトピックではありたせんがすべおがすでに解決されおいるため、難しいこずではありたせんが、たっすぐな頭で実装するだけで枈みたす、Pipenv、぀たりPython党䜓が非垞に圹立぀でしょう。 、正しく行われた堎合。

党おのコメント42件

私はこれを少し掘り䞋げおきたした。 このようなトップレベルの芁件を指定するず、pipリゟルバヌはパッケヌゞの䟝存関係を正しく解決し、パッケヌゞの出所に関係なく指定子を結合するようです。

したがっお、䞊蚘の堎合、 tensorflow==1.8.0ずtensorflow  1.9.0 の2぀の芁件を解決したす。 tensorflow固定しおいない堎合は、指定した制玄内で最新バヌゞョンに解決されるず思い

これはhttps://github.com/pypa/pipenv/issues/2583に䌌おいるようです-根本的な問題は、私そしお他の人もがjinja2ような芁件がどの芁件にも䞀臎するず想定しおいるこずですいく぀かの制玄内で利甚可胜なバヌゞョンですが、リゟルバヌは代わりにこれをjinja2==LATEST_RELEASE芋なしおいるようです。 おそらく、ある時点でLATEST_RELEASEが、指定された制玄に䞀臎するリリヌスのために陀倖されたすが、それ以前は、状況によっおは倧混乱を匕き起こすようです。

たったくそのずおり。 根本的な問題は、Pipenvのリゟルバヌ基本的にはpip-toolsにバックトラッキングず呌ばれる機胜がないこずです。 RPGビデオゲヌムのセヌブロヌドポむントのように考えおください。決定を䞋す前にセヌブしおから、䜕が起こるかを確認するためにプレむしたす。 結果が気に入らない堎合は、必芁なものが埗られるたで、ロヌドしお別の方法で実行しおください。 満足のいくものがない堎合は、以前の保存をロヌドしお、そこから再詊行したす。

バックトラックは簡単に実装するこずはできたせん。 それは難しいこずではありたせんが基本的にはすでに解決された問題です、プロゞェクトに欠けおいる実装にはかなりのリ゜ヌスが必芁です。 興味のある方はぜひこの問題に取り組んでください。ご尜力に感謝いたしたす。

バックトラックがこの特定のケヌスをどのように解決するかに぀いお詳しく説明できたすか 私はできる限り支揎するこずに非垞に興味がありたす-おそらくそれはコヌヒヌたたはその欠劂ですが、ここでは特にバックトラックがどのように適合するのかわかりたせん。 スナップショットを䜜成するタむミングをどのようにしお知るこずができたすか これは、ロックを遅くする非垞に培底的な怜玢を匕き起こしたせんか スナップショットずバックトラックの数は指数関数的に増加したせんか

ここでの本圓の問題は、リゟルバヌが>10,<10が解決できないこずを理解できず、埌で枛らすこずができる2぀の別個の独立した芁件ずしお解決する必芁があるずいうこずではありたせんか 䟝存関係ず制玄のよりグラフのような構造がここで圹立぀のではないでしょうか 私が知る限りそしお私が間違っおいる堎合は蚂正しおください、リゟルバヌは個々の䟝存関係のフラットでリンクされおいないバッグのようなものですか

この単玔なシナリオを考えおみたしょう。 パッケヌゞA、B、C、およびDがありたす。

  • AはBずCに䟝存したす。
  • BはCずDに䟝存したす。

そしお、PipfileでAを指定したす。

リゟルバは、ラりンドで動䜜するず考えるこずができたす。 ラりンドごずに、各パッケヌゞの内郚を調べお䟝存関係を芋぀け、リストに远加しお、芋぀からなくなるたで繰り返したす。

R0A。
R1AはBずCに䟝存したす。これで、A、B、Cができたした。
R2BはCずDに䟝存したす。 Cは䜕にも䟝存したせん。 今A、B、C、D。
R3Dは䜕にも䟝存したせん。 それでもA、B、C、D。解決は正垞に終了したした。

それでは、バヌゞョンに぀いお考えおみたしょう。 A、B、Dにはそれぞれ1぀のバヌゞョンがあり簡単にするため、CにはC1ずC2の2぀のバヌゞョンがあるずしたす。

  • AはBずCに䟝存したす。
  • BはCずDに䟝存したすが、C1が必芁です぀たり、䟝存関係ずしおC <2を指定したす。

R0A。
R1AはBずCを望んでいたす。どちらのCを遞択する必芁がありたすか わかりたせん。

Pipenv currentが行っおいるこずは、垞に最新のものを奜むこずです。

R1A、B、C2。
R2BはC1ずDを必芁ずしおいたす。問題が発生したため、C1ずC2を同時にむンストヌルするこずはできたせん。 解決に倱敗したす。

バックトラックで可胜なこずは、ラりンド1でその決定を行う前に保存するこずです。

R1A、B、C ここに保存したす。
R1aA、B、C2。
R2-1aこれは機胜したせん。 負荷。
R1bA、B、C1。
R2-1bA、B、C1、D。成功

これを䞀般化したす。 パッケヌゞXには、v1ではP <5、v2ではP> 5が必芁な堎合がありたす。 最初にv2を遞択するこずもありたすが、それが埌で問題になる堎合おそらく、YはすべおのバヌゞョンでP <5を必芁ずしたす、代わりにXのv1シリヌズをバックトラックしお遞択できたす。 衚瀺されるこれらの競合するバヌゞョン芁件は、通垞、この皮のより耇雑なグラフからのものであり、バックトラックがその解決策です解決策がある堎合。

バックトラッキング解決アルゎリズムは䞻に解決された問題であり、さたざたな蚀語で実装されおいたす。 ただし、Pythonはこの点でさらに䞍足しおいたす。 カクテル皮によっお䜿甚され、詩もロックファむルを䜿甚しお別のツヌル、およびRubyのずほが同様のMolinillo バンドラヌずCocoapodsで䜿甚されるは、私が実䞖界の生産䜿甚䞭知っおいる唯䞀のものです。 ザゟは別ですが、それはさらに初期の段階です。

䞊蚘である皋床明確になっおいただければ幞いです。 これは取り組むのが簡単なトピックではありたせんがすべおがすでに解決されおいるため、難しいこずではありたせんが、たっすぐな頭で実装するだけで枈みたす、Pipenv、぀たりPython党䜓が非垞に圹立぀でしょう。 、正しく行われた堎合。

これをあたり読みすぎずに、 https//labix.org/python-constraintのようなものがここで圹立ちたすか

Poetryロックファむルも䜿甚する別のツヌルで䜿甚されるMixologyは、RubyのMolinilloずほが同じです。

情報ずしおは、Pythonパッケヌゞング゚コシステムには遅すぎたため、これはもはや圓おはたりたせん。 すべおのメタデヌタがAPIを介しお利甚できる堎合はうたく機胜したすが、そうでない堎合は機胜したせん。 そこで、Poetryに、レむゞヌ必芁な堎合にのみ情報を取埗するで、競合解決ずバックトラッキングアルゎリズムを備えた別のリゟルバヌを実装したした。 これにより、30分から1分未満かかる極端なケヌスを削枛するこずができたした。 そしお、ほずんどの堎合、10秒未満で䟝存関係を解決したす。

@sdispater曎新された情報をありがずう Poetryで珟圚䜿甚されおいる実装が、同じバックトラッキングリゟルバヌのバリアントであるかどうかを尋ねおもよいですか 私はMixologyおよびMilinilloを調べおきたしたが、私にずっおの問題は、仕様を蚭定するずきに各バヌゞョンの䟝存関係情報があたりにも熱心にフェッチされるこずです。 遅延評䟡リストずしお可胜性を実装するこずで、問題のほずんどが解決されるずいう印象を受けたした。 私の印象は正しいですか、それずも他に解決できないボトルネックがありたすか たた、別のプロゞェクトで䜿甚できるように、新しいミク゜ロゞヌの実装を抜出する予定はありたすか Pipenvだけでなく、䞀般的なPython゚コシステムにも倧きなメリットがありたすたずえば、長幎のpip問題の倧郚分を解決したす。

@oliland確かに 制玄の充足は、この特定のトピックの䞀般化です。 ラむブラリは、特殊な䟝存関係リゟルバヌよりも䜎いレベルより抜象的、数孊的で機胜したすが、最終的にはすべお同じ問題を解決したす。

そこで、Poetryに、レむゞヌ必芁な堎合にのみ情報を取埗するで、競合解決ずバックトラッキングアルゎリズムを備えた別のリゟルバヌを実装したした。

これを別のパッケヌゞに分割しおもよろしいですか 時間に制玄があり、玍埗がいく堎合は、゚コシステム内の倚くのプロゞェクトに圹立぀可胜性があるため、これを支揎したいず思いたす。 この領域の呚りに出珟しおいる倚数のツヌルがすべお、さたざたな欠陥ずトレヌドオフを䌎っお、これの独自のバヌゞョンを実装する必芁があるこずは、ややばかげおいるように思われたす。

@sdispaterミク゜ロゞヌを分離する蚈画がある堎合、私は非垞に興味がありたす。時間の制玄のために、pipenvに組み蟌たれおいない実装がいく぀かありたすが、それはおそらく少し協力できるプロゞェクトです。 フルサット゜ルバヌですか Pythonでの適切な実装はただ芋おいたせん

@uranusjrリゟルバヌにはバックトラッキングアルゎリズムがありたすが、真の競合が発生するこずはたれであるため、ほずんど䜿甚されたせん。

私はMixologyおよびMilinilloを調べおきたしたが、私にずっおの問題は、仕様を蚭定するずきに各バヌゞョンの䟝存関係情報があたりにも熱心にフェッチされるこずです。

私は同意したす。それが、時々遅すぎお䜿甚できないため、リゟルバヌを完党に曞き盎した理由です。

遅延評䟡リストずしお可胜性を実装するこずで、問題のほずんどが解決されるずいう印象を受けたした。

私はそれを詊したしたが、少なくずも以前のアルゎリズムでは、どこにも぀ながりたせんでした。 パッケヌゞの䟝存関係セットが以前に衚瀺されたこずを確認できず、衚瀺されおいた堎合はパッケヌゞを砎棄するこずができなかったため、これはさらに悪化したす。そのため、確認する必芁のないパッケヌゞを怜査するず、プロセスがさらに遅くなりたす。

@uranusjr @orf @techalchemyい぀か、詩から抜出する予定です。 ただし、ETAは珟圚、コヌドベヌスの他の郚分バヌゞョン制玄モゞュヌルなどず緊密に結合されおいるため、ただ持っおいたせん。 そのため、内郚で䜿甚されおいる抂念のいく぀かを抜象化しお、完党に独立したラむブラリにする必芁がありたす。

@sdispaterそれを明確にしおくれおありがずう、情報に感謝したす 間違いなく私たちを投皿し続けおください、私たちが少しでも助けるこずができるかどうか私たちに知らせおください

@sdispater詩からMixologyを自分でスタンドアロンリポゞトリに抜出しようずしおもよろしいですか 私はリゟルバヌロゞックに取り組んでいたすが、むンタヌフェむスするものがあれば玠晎らしいず思いたす。 もちろん、適切な垰属を含めたす。

この問題が解決されおいる間、解決できない状態に解決するパッケヌゞにpipenvを䜿甚したい私たちのための回避策はありたすか たずえば、jupyterを解決できない状態に解決するpipfileがありたすおそらく、ipython <6でスタックしおいるpython2.7を䜿甚しおいるためです。 pipfileにipython = "<6"を指定したしたが、pipfileにjupyterたたはjupyterlabを含めるず、pipenvのむンストヌルが倱敗したす。 pipenv install jupyter --skip-lockを実行するビルドプロセスで远加のスクリプトを䜿甚するこずにしたしたが、それを避けお、どういうわけかpipfileで--skip-lockを指定したいず思いたす。 私はこれをいく぀かの点でpipfileの目的を損なうこずを理解しおいたすが、別の方法は、䞀連のシェルスクリプトを呌び出すビルドプロセスを䜜成するか、pipenvの䜿甚を完党に回避するこずです。 私の珟圚の蚭定に関するもう1぀の問題は、pipfileを読み取っただけでは、プログラムがjupyterに䟝存しおいるこずが明確ではないこずです。

@lukesmurray poetryは、 pipenvず同じ目的を果たす代替の䟝存関係バヌゞョン管理ツヌルですが、pipenvよりも優れた䟝存関係解決アルゎリズムがあるず䞻匵しおいたす。 このバグを修正する䜙裕がない堎合は、それを䜿甚できたす。

Pipenvはすでに展開プロセスに統合されおいるので、特にこれが修正されるのを埅ちたす。

@uranusjr可胜であれば、これを手䌝いたいず思いたす。 パッチが適甚されたバヌゞョンのpip-toolsの䞊に䟝存関係の解決を構築したすか

FWIW、これは最近のリグレッションのようであり、 pipenv==2018.5.18ぞのダりングレヌドは、この問題が修正されるたでの回避策です。 ピップ9からピップ10぀たり2255ぞのアップグレヌドに関連しおいるず思いたす。

hm興味深い@ltmヒントをありがずう。 それは私たちに探し始めるのに良い堎所を䞎えたす

@lukesmurray私たちはただ最善のアプロヌチを

2018.5.18にロヌルバックする@ltm゜リュヌションは、チャむムを

pytestずpytestプラグむンであるpytest-covをむンストヌルしようずするず、同様の問題が発生しおいるず報告できたす。

pytest-covは、プラグむンずしおpytestずずもに䜿甚するように開発されおいるため、䞡方のアむテムに制限がないため、䞡方のアむテム間で競合が発生するこずはありたせん。 pytest-covで動䜜するバヌゞョンのpytest 最新ではない堎合が必芁です。

以䞋のような最小限のPipfileは、 could not find a version that matches pluggy<0.7,>=0.5,>=0.7ず文句を蚀っお倱敗したす

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
pytest-cov = "*"
pytest = "*"

[requires]
python_version = "3.6"

pytestの問題に぀いおも、ここで説明pytestがプラグの固定を>=0.5,<0.7から>=0.7です。 したがっお、最初のラりンドでpipenvは叀い䟝存関係を制玄ずしお怜出し、この制玄を曎新しなくなりたす。

pipenv lock --clearは䟝存関係のキャッシュをクリアし、適切に解決したす

pipenv lock --clear実行が機胜したこずを確認できたす

pipenvがpipenv install --skip-lock実行を提案するのず同じように、サブ䟝存関係の管理は改善されたせんが、これを最終ナヌザヌに提案するこずをお勧めしたす。

い぀ものように、䜿いやすさの向䞊ず゚ラヌメッセヌゞの改善ぞの貢献は倧歓迎であり、プルリク゚ストを送信するのに十分気を配っおいる人がいれば、すぐに受け入れられる傟向がありたす:)

to add jinja2 = "==2.9.0" explicitly in you Pipfileもpipenv lock --clear圹に立たなかった...
゚アフロヌず䞀緒にpipenvを䜿甚するにはどうすればよいですか

これは取り組んでいたすか これに関連するPRが芋぀かりたせん。

@gerardopassaプロゞェクトで取り組んでいるず思いたす。

smart-openパッケヌゞでも同じ問題のようです

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches botocore<1.11.0,<1.13.0,<2.0.0,==1.10.84,>=1.10.65,>=1.12.0,>=1.3.0

そしおグラフ

smart-open==1.6.0
  - boto [required: >=2.32, installed: 2.49.0]
  - boto3 [required: Any, installed: 1.9.0]
    - botocore [required: >=1.12.0,<1.13.0, installed: 1.12.0]
      - docutils [required: >=0.10, installed: 0.14]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
      - python-dateutil [required: >=2.1,<3.0.0, installed: 2.7.3]
        - six [required: >=1.5, installed: 1.11.0]
      - urllib3 [required: >=1.20,<1.24, installed: 1.23]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
    - s3transfer [required: >=0.1.10,<0.2.0, installed: 0.1.13]
      - botocore [required: >=1.3.0,<2.0.0, installed: 1.12.0]
        - docutils [required: >=0.10, installed: 0.14]
        - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
        - python-dateutil [required: >=2.1,<3.0.0, installed: 2.7.3]
          - six [required: >=1.5, installed: 1.11.0]
        - urllib3 [required: >=1.20,<1.24, installed: 1.23]
  - bz2file [required: Any, installed: 0.98]
  - requests [required: Any, installed: 2.19.1]
    - certifi [required: >=2017.4.17, installed: 2018.8.24]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: >=2.5,<2.8, installed: 2.7]
    - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]

別のそのような状況に遭遇したした

パッケヌゞを䜿甚する胜力を劚げるこずはありたせんが、譊告がありたす。

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches django<2.1.0,==2.1.1,>=1.5 (from -r /tmp/pipenv-jb_c05f6-requirements/pipenv-wlikcsrz-constraints.txt (line 8))
Tried: 1.1.3, 1.1.4, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.3, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.4.9, 1.4.10, 1.4.11, 1.4.12, 1.4.13, 1.4.14, 1.4.15, 1.4.16, 1.4.17, 1.4.18, 1.4.19, 1.4.20, 1.4.21, 1.4.22, 1.5, 1.5.1, 1.5.2, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.5.6, 1.5.7, 1.5.8, 1.5.8, 1.5.9, 1.5.10, 1.5.11, 1.5.12, 1.5.12, 1.6, 1.6, 1.6.1, 1.6.1, 1.6.2, 1.6.2, 1.6.3, 1.6.3, 1.6.4, 1.6.4, 1.6.5, 1.6.5, 1.6.6, 1.6.6, 1.6.7, 1.6.7, 1.6.8, 1.6.8, 1.6.9, 1.6.9, 1.6.10, 1.6.10, 1.6.11, 1.6.11, 1.7, 1.7, 1.7.1, 1.7.1, 1.7.2, 1.7.2, 1.7.3, 1.7.3, 1.7.4, 1.7.4, 1.7.5, 1.7.5, 1.7.6, 1.7.6, 1.7.7, 1.7.7, 1.7.8, 1.7.8, 1.7.9, 1.7.9, 1.7.10, 1.7.10, 1.7.11, 1.7.11, 1.8, 1.8, 1.8.1, 1.8.1, 1.8.2, 1.8.2, 1.8.3, 1.8.3, 1.8.4, 1.8.4, 1.8.5, 1.8.5, 1.8.6, 1.8.6, 1.8.7, 1.8.7, 1.8.8, 1.8.8, 1.8.9, 1.8.9, 1.8.10, 1.8.10, 1.8.11, 1.8.11, 1.8.12, 1.8.12, 1.8.13, 1.8.13, 1.8.14, 1.8.14, 1.8.15, 1.8.15, 1.8.16, 1.8.16, 1.8.17, 1.8.17, 1.8.18, 1.8.18, 1.8.19, 1.8.19, 1.9, 1.9, 1.9.1, 1.9.1, 1.9.2, 1.9.2, 1.9.3, 1.9.3, 1.9.4, 1.9.4, 1.9.5, 1.9.5, 1.9.6, 1.9.6, 1.9.7, 1.9.7, 1.9.8, 1.9.8, 1.9.9, 1.9.9, 1.9.10, 1.9.10, 1.9.11, 1.9.11, 1.9.12, 1.9.12, 1.9.13, 1.9.13, 1.10, 1.10, 1.10.1, 1.10.1, 1.10.2, 1.10.2, 1.10.3, 1.10.3, 1.10.4, 1.10.4, 1.10.5, 1.10.5, 1.10.6, 1.10.6, 1.10.7, 1.10.7, 1.10.8, 1.10.8, 1.11, 1.11, 1.11.1, 1.11.1, 1.11.2, 1.11.2, 1.11.3, 1.11.3, 1.11.4, 1.11.4, 1.11.5, 1.11.5, 1.11.6, 1.11.6, 1.11.7, 1.11.7, 1.11.8, 1.11.8, 1.11.9, 1.11.9, 1.11.10, 1.11.10, 1.11.11, 1.11.11, 1.11.12, 1.11.12, 1.11.13, 1.11.13, 1.11.14, 1.11.14, 1.11.15, 1.11.15, 2.0, 2.0, 2.0.1, 2.0.1, 2.0.2, 2.0.2, 2.0.3, 2.0.3, 2.0.4, 2.0.4, 2.0.5, 2.0.5, 2.0.6, 2.0.6, 2.0.7, 2.0.7, 2.0.8, 2.0.8, 2.1, 2.1, 2.1.1, 2.1.1
Skipped pre-versions: 1.8a1, 1.8b1, 1.8b2, 1.8rc1, 1.9a1, 1.9b1, 1.9rc1, 1.9rc2, 1.10a1, 1.10a1, 1.10b1, 1.10b1, 1.10rc1, 1.10rc1, 1.11a1, 1.11b1, 1.11rc1, 1.11rc1, 2.0a1, 2.0b1, 2.0rc1, 2.1a1, 2.1b1, 2.1rc1
There are incompatible versions in the resolved dependencies.

$ pipenvグラフ

Adafruit-ADS1x15==1.0.2
  - Adafruit-GPIO [required: >=0.6.5, installed: 1.0.3]
    - adafruit-pureio [required: Any, installed: 0.2.3]
    - spidev [required: Any, installed: 3.2]
crayons==0.1.2
  - colorama [required: Any, installed: 0.3.9]
django-click==2.1.0
  - click [required: >5.0, installed: 6.7]
  - six [required: >=1.9.0, installed: 1.11.0]
django-hamlpy==1.1.1
  - django [required: Any, installed: 2.0.8]
    - pytz [required: Any, installed: 2018.5]
  - enum34 [required: Any, installed: 1.1.6]
  - future [required: Any, installed: 0.16.0]
  - regex [required: Any, installed: 2018.8.29]
  - six [required: Any, installed: 1.11.0]
enaml==0.10.2
  - atom [required: >=0.4.1, installed: 0.4.1]
    - future [required: Any, installed: 0.16.0]
    - setuptools [required: Any, installed: 40.0.0]
  - future [required: Any, installed: 0.16.0]
  - kiwisolver [required: >=1.0.0, installed: 1.0.1]
    - setuptools [required: Any, installed: 40.0.0]
  - ply [required: >=3.4, installed: 3.11]
  - qtpy [required: >=1.3, installed: 1.5.0]
  - setuptools [required: Any, installed: 40.0.0]
furl==1.2.1
  - orderedmultidict [required: >=1.0, installed: 1.0]
    - six [required: >=1.8.0, installed: 1.11.0]
  - six [required: >=1.8.0, installed: 1.11.0]
google-api-python-client==1.7.4
  - google-auth [required: >=1.4.1, installed: 1.5.1]
    - cachetools [required: >=2.0.0, installed: 2.1.0]
    - pyasn1-modules [required: >=0.2.1, installed: 0.2.2]
      - pyasn1 [required: >=0.4.1,<0.5.0, installed: 0.4.4]
    - rsa [required: >=3.1.4, installed: 3.4.2]
      - pyasn1 [required: >=0.1.3, installed: 0.4.4]
    - six [required: >=1.9.0, installed: 1.11.0]
  - google-auth-httplib2 [required: >=0.0.3, installed: 0.0.3]
    - google-auth [required: Any, installed: 1.5.1]
      - cachetools [required: >=2.0.0, installed: 2.1.0]
      - pyasn1-modules [required: >=0.2.1, installed: 0.2.2]
        - pyasn1 [required: >=0.4.1,<0.5.0, installed: 0.4.4]
      - rsa [required: >=3.1.4, installed: 3.4.2]
        - pyasn1 [required: >=0.1.3, installed: 0.4.4]
      - six [required: >=1.9.0, installed: 1.11.0]
    - httplib2 [required: >=0.9.1, installed: 0.11.3]
  - httplib2 [required: >=0.9.2,<1dev, installed: 0.11.3]
  - six [required: >=1.6.1,<2dev, installed: 1.11.0]
  - uritemplate [required: >=3.0.0,<4dev, installed: 3.0.0]
gunicorn==19.9.0
ipython==6.5.0
  - backcall [required: Any, installed: 0.1.0]
  - decorator [required: Any, installed: 4.3.0]
  - jedi [required: >=0.10, installed: 0.12.1]
    - parso [required: >=0.3.0, installed: 0.3.1]
  - pexpect [required: Any, installed: 4.6.0]
    - ptyprocess [required: >=0.5, installed: 0.6.0]
  - pickleshare [required: Any, installed: 0.7.4]
  - prompt-toolkit [required: >=1.0.15,<2.0.0, installed: 1.0.15]
    - six [required: >=1.9.0, installed: 1.11.0]
    - wcwidth [required: Any, installed: 0.1.7]
  - pygments [required: Any, installed: 2.2.0]
  - setuptools [required: >=18.5, installed: 40.0.0]
  - simplegeneric [required: >0.8, installed: 0.8.1]
  - traitlets [required: >=4.2, installed: 4.3.2]
    - decorator [required: Any, installed: 4.3.0]
    - ipython-genutils [required: Any, installed: 0.2.0]
    - six [required: Any, installed: 1.11.0]
isodate==0.6.0
  - six [required: Any, installed: 1.11.0]
numpy==1.15.1
oauth2client==4.1.3
  - httplib2 [required: >=0.9.1, installed: 0.11.3]
  - pyasn1 [required: >=0.1.7, installed: 0.4.4]
  - pyasn1-modules [required: >=0.0.5, installed: 0.2.2]
    - pyasn1 [required: >=0.4.1,<0.5.0, installed: 0.4.4]
  - rsa [required: >=3.1.4, installed: 3.4.2]
    - pyasn1 [required: >=0.1.3, installed: 0.4.4]
  - six [required: >=1.6.1, installed: 1.11.0]
parse==1.8.4
PyQt5==5.11.2
  - PyQt5-sip [required: >=4.19.11,<4.20, installed: 4.19.12]
python-decouple==3.1
python-mpv==0.3.9
RPi.GPIO==0.6.3
spotipy==2.4.4
  - requests [required: >=1.0, installed: 2.19.1]
    - certifi [required: >=2017.4.17, installed: 2018.8.24]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: >=2.5,<2.8, installed: 2.7]
    - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
stream-django==1.4.0
  - django [required: >=1.5,<2.1.0, installed: 2.0.8]
    - pytz [required: Any, installed: 2018.5]
  - pytz [required: Any, installed: 2018.5]
  - stream-python [required: >=2.8.1, installed: 2.11.0]
    - pycryptodomex [required: ==3.4.7, installed: 3.4.7]
    - pyjwt [required: >=1.3.0,<1.7.0, installed: 1.6.4]
    - requests [required: >=2.3.0,<3, installed: 2.19.1]
      - certifi [required: >=2017.4.17, installed: 2018.8.24]
      - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
      - idna [required: >=2.5,<2.8, installed: 2.7]
      - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
    - six [required: >=1.8.0, installed: 1.11.0]
youtube-dl==2018.9.8
zproc==0.9.2
  - psutil [required: Any, installed: 5.4.7]
  - pyzmq [required: Any, installed: 17.1.2]
  - tblib [required: Any, installed: 1.3.2]

Pipfile

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[packages]
crayons = "*"
numpy = "*"
requests = "*"
spotipy = "*"
isodate = "*"
google-api-python-client = "*"
django = "*"
youtube-dl = "*"
click = "*"
"oauth2client" = "*"
"rpi.gpio" = "*"
"adafruit-ads1x15" = "*"
python-decouple = "*"
django-click = "*"
parse = "*"
furl = "*"
django-hamlpy = "*"
python-mpv = "*"
zproc = {editable = true, ref = "next", git = "https://github.com/pycampers/zproc.git"}
gunicorn = "*"
stream-django = "*"

[dev-packages]
enaml = "*"
"pyqt5" = "*"
ipython = "*"

[requires]
python_version = "3.6"

Pipfile.lock

{
    "_meta": {
        "hash": {
            "sha256": "d9fbd586f9779af10ebd259a329d91a5cd28eb33b26c052e8ca3cafcf52a0bd5"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.6"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.python.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "adafruit-ads1x15": {
            "hashes": [
                "sha256:058021475c51d8fad6ce8417d69ca5aea71dec9d9e5292e6b83b6cc8b338dcd3",
                "sha256:2076c114e3ca938ef5de13c608f2b28c517ca3d53407432fd470118556ab3feb"
            ],
            "index": "pypi",
            "version": "==1.0.2"
        },
        "adafruit-gpio": {
            "hashes": [
                "sha256:d6465b92c866c51ca8f3bc1e8f2ec36f5ccdb46d0fd54101c1109756d4a2dcd0"
            ],
            "version": "==1.0.3"
        },
        "adafruit-pureio": {
            "hashes": [
                "sha256:e65cd929f1d8e109513ed1e457c2742bf4f15349c1a9b7f5b1e04191624d7488"
            ],
            "version": "==0.2.3"
        },
        "cachetools": {
            "hashes": [
                "sha256:90f1d559512fc073483fe573ef5ceb39bf6ad3d39edc98dc55178a2b2b176fa3",
                "sha256:d1c398969c478d336f767ba02040fa22617333293fb0b8968e79b16028dfee35"
            ],
            "version": "==2.1.0"
        },
        "certifi": {
            "hashes": [
                "sha256:376690d6f16d32f9d1fe8932551d80b23e9d393a8578c5633a2ed39a64861638",
                "sha256:456048c7e371c089d0a77a5212fb37a2c2dce1e24146e3b7e0261736aaeaa22a"
            ],
            "version": "==2018.8.24"
        },
        "chardet": {
            "hashes": [
                "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
                "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
            ],
            "version": "==3.0.4"
        },
        "click": {
            "hashes": [
                "sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d",
                "sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b"
            ],
            "index": "pypi",
            "version": "==6.7"
        },
        "colorama": {
            "hashes": [
                "sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda",
                "sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1"
            ],
            "version": "==0.3.9"
        },
        "crayons": {
            "hashes": [
                "sha256:5e17691605e564d63482067eb6327d01a584bbaf870beffd4456a3391bd8809d",
                "sha256:6f51241d0c4faec1c04c1c0ac6a68f1d66a4655476ce1570b3f37e5166a599cc"
            ],
            "index": "pypi",
            "version": "==0.1.2"
        },
        "django": {
            "hashes": [
                "sha256:04f2e423f2e60943c02bd2959174b844f7d1bcd19eabb7f8e4282999958021fd",
                "sha256:e1cc1cd6b658aa4e052f5f2b148bfda08091d7c3558529708342e37e4e33f72c"
            ],
            "index": "pypi",
            "version": "==2.1.1"
        },
        "django-click": {
            "hashes": [
                "sha256:1803979cbe328333ec935c8ddfbf03da40f94f3361585cf4142ac7c4da2d5fde",
                "sha256:d46cc7abcd5d7e612dcd75ba56bf57ee404d62de7d09c7c3397fa1f475c9c753"
            ],
            "index": "pypi",
            "version": "==2.1.0"
        },
        "django-hamlpy": {
            "hashes": [
                "sha256:90c4db413b9ab71b0a06daeb01181e935e06d053cfbe91fcf2c2ca7d5df6aaa2",
                "sha256:ac899cfc0595b228b4fa71d0d6bb9c02697d8ef68488e15e6798333f4e5a3abd"
            ],
            "index": "pypi",
            "version": "==1.1.1"
        },
        "enum34": {
            "hashes": [
                "sha256:2d81cbbe0e73112bdfe6ef8576f2238f2ba27dd0d55752a776c41d38b7da2850",
                "sha256:644837f692e5f550741432dd3f223bbb9852018674981b1664e5dc339387588a",
                "sha256:6bd0f6ad48ec2aa117d3d141940d484deccda84d4fcd884f5c3d93c23ecd8c79",
                "sha256:8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1"
            ],
            "version": "==1.1.6"
        },
        "furl": {
            "hashes": [
                "sha256:17654103b8d0cbe42798592db099c728165ac12057d49fe2e69de967d87bf29b"
            ],
            "index": "pypi",
            "version": "==1.2.1"
        },
        "future": {
            "hashes": [
                "sha256:e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
            ],
            "version": "==0.16.0"
        },
        "google-api-python-client": {
            "hashes": [
                "sha256:5d5cb02c6f3112c68eed51b74891a49c0e35263380672d662f8bfe85b8114d7c",
                "sha256:7cc47cf80b25ecd7f3d917ea247bb6c62587514e40604ae29c47c0e4ebd1174b"
            ],
            "index": "pypi",
            "version": "==1.7.4"
        },
        "google-auth": {
            "hashes": [
                "sha256:9ca363facbf2622d9ba828017536ccca2e0f58bd15e659b52f312172f8815530",
                "sha256:a4cf9e803f2176b5de442763bd339b313d3f1ed3002e3e1eb6eec1d7c9bbc9b4"
            ],
            "version": "==1.5.1"
        },
        "google-auth-httplib2": {
            "hashes": [
                "sha256:098fade613c25b4527b2c08fa42d11f3c2037dda8995d86de0745228e965d445",
                "sha256:f1c437842155680cf9918df9bc51c1182fda41feef88c34004bd1978c8157e08"
            ],
            "version": "==0.0.3"
        },
        "gunicorn": {
            "hashes": [
                "sha256:aa8e0b40b4157b36a5df5e599f45c9c76d6af43845ba3b3b0efe2c70473c2471",
                "sha256:fa2662097c66f920f53f70621c6c58ca4a3c4d3434205e608e121b5b3b71f4f3"
            ],
            "index": "pypi",
            "version": "==19.9.0"
        },
        "httplib2": {
            "hashes": [
                "sha256:e71daed9a0e6373642db61166fa70beecc9bf04383477f84671348c02a04cbdf"
            ],
            "version": "==0.11.3"
        },
        "idna": {
            "hashes": [
                "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e",
                "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16"
            ],
            "version": "==2.7"
        },
        "isodate": {
            "hashes": [
                "sha256:2e364a3d5759479cdb2d37cce6b9376ea504db2ff90252a2e5b7cc89cc9ff2d8",
                "sha256:aa4d33c06640f5352aca96e4b81afd8ab3b47337cc12089822d6f322ac772c81"
            ],
            "index": "pypi",
            "version": "==0.6.0"
        },
        "numpy": {
            "hashes": [
                "sha256:1c362ad12dd09a43b348bb28dd2295dd9cdf77f41f0f45965e04ba97f525b864",
                "sha256:2156a06bd407918df4ac0122df6497a9c137432118f585e5b17d543e593d1587",
                "sha256:24e4149c38489b51fc774b1e1faa9103e82f73344d7a00ba66f6845ab4769f3f",
                "sha256:340ec1697d9bb3a9c464028af7a54245298502e91178bddb4c37626d36e197b7",
                "sha256:35db8d419345caa4eeaa65cd63f34a15208acd87530a30f0bc25fc84f55c8c80",
                "sha256:361370e9b7f5e44c41eee29f2bb5cb3b755abb4b038bce6d6cbe08db7ff9cb74",
                "sha256:36e8dcd1813ca92ce7e4299120cee6c03adad33d89b54862c1b1a100443ac399",
                "sha256:378378973546ecc1dfaf9e24c160d683dd04df871ecd2dcc86ce658ca20f92c0",
                "sha256:419e6faee16097124ee627ed31572c7e80a1070efa25260b78097cca240e219a",
                "sha256:4287104c24e6a09b9b418761a1e7b1bbde65105f110690ca46a23600a3c606b8",
                "sha256:549f3e9778b148a47f4fb4682955ed88057eb627c9fe5467f33507c536deda9d",
                "sha256:5e359e9c531075220785603e5966eef20ccae9b3b6b8a06fdfb66c084361ce92",
                "sha256:5ee7f3dbbdba0da75dec7e94bd7a2b10fe57a83e1b38e678200a6ad8e7b14fdc",
                "sha256:62d55e96ec7b117d3d5e618c15efcf769e70a6effaee5842857b64fb4883887a",
                "sha256:719b6789acb2bc86ea9b33a701d7c43dc2fc56d95107fd3c5b0a8230164d4dfb",
                "sha256:7a70f2b60d48828cba94a54a8776b61a9c2657a803d47f5785f8062e3a9c7c55",
                "sha256:7b9e37f194f8bcdca8e9e6af92e2cbad79e360542effc2dd6b98d63955d8d8a3",
                "sha256:83b8fc18261b70f45bece2d392537c93dc81eb6c539a16c9ac994c47fc79f09a",
                "sha256:9473ad28375710ab18378e72b59422399b27e957e9339c413bf00793b4b12df0",
                "sha256:95b085b253080e5d09f7826f5e27dce067bae813a132023a77b739614a29de6e",
                "sha256:98b86c62c08c2e5dc98a9c856d4a95329d11b1c6058cb9b5191d5ea6891acd09",
                "sha256:a3bd01d6d3ed3d7c06d7f9979ba5d68281f15383fafd53b81aa44b9191047cf8",
                "sha256:c81a6afc1d2531a9ada50b58f8c36197f8418ef3d0611d4c1d7af93fdcda764f",
                "sha256:ce75ed495a746e3e78cfa22a77096b3bff2eda995616cb7a542047f233091268",
                "sha256:dae8618c0bcbfcf6cf91350f8abcdd84158323711566a8c5892b5c7f832af76f",
                "sha256:df0b02c6705c5d1c25cc35c7b5d6b6f9b3b30833f9d178843397ae55ecc2eebb",
                "sha256:e3660744cda0d94b90141cdd0db9308b958a372cfeee8d7188fdf5ad9108ea82",
                "sha256:f2362d0ca3e16c37782c1054d7972b8ad2729169567e3f0f4e5dd3cdf85f188e"
            ],
            "index": "pypi",
            "version": "==1.15.1"
        },
        "oauth2client": {
            "hashes": [
                "sha256:b8a81cc5d60e2d364f0b1b98f958dbd472887acaf1a5b05e21c28c31a2d6d3ac",
                "sha256:d486741e451287f69568a4d26d70d9acd73a2bbfa275746c535b4209891cccc6"
            ],
            "index": "pypi",
            "version": "==4.1.3"
        },
        "orderedmultidict": {
            "hashes": [
                "sha256:24e3b730cf84e4a6a68be5cc760864905cf66abc89851e724bd5b4e849eaa96b",
                "sha256:b89895ba6438038d0bdf88020ceff876cf3eae0d5c66a69b526fab31125db2c5"
            ],
            "version": "==1.0"
        },
        "parse": {
            "hashes": [
                "sha256:c3cdf6206f22aeebfa00e5b954fcfea13d1b2dc271c75806b6025b94fb490939"
            ],
            "index": "pypi",
            "version": "==1.8.4"
        },
        "psutil": {
            "hashes": [
                "sha256:0d8da7333549a998556c18eb2af3ce902c28d66ceb947505c008f91e9f988abd",
                "sha256:1914bacbd2fc2af8f795daa44b9d2e0649a147460cfd21b1a70a124472f66d40",
                "sha256:215d61a901e67b1a35e14c6aedef317f7fa7e6075a20c150fd11bd2c906d2c83",
                "sha256:51057c03aea251ad6667c2bba259bc7ed3210222d3a74152c84e3ab06e1da0ba",
                "sha256:5b6322b167a5ba0c5463b4d30dfd379cd4ce245a1162ebf8fc7ab5c5ffae4f3b",
                "sha256:a890c3e490493f21da2817ffc92822693bc0d6bcac9999caa04ffce8dd4e7132",
                "sha256:b34611280a2d0697f1c499e15e936d88109170194b390599c98bab8072a71f05",
                "sha256:cea2557ee6a9faa2c100947637ded68414e12b851633c4ce26e0311b2a2ed539",
                "sha256:d081707ef0081920533db30200a2d30d5c0ea9cf6afa7cf8881ae4516cc69c48"
            ],
            "markers": "python_version >= '2.6' and python_version != '3.0.*' and python_version != '3.2.*' and python_version != '3.1.*' and python_version != '3.3.*'",
            "version": "==5.4.7"
        },
        "pyasn1": {
            "hashes": [
                "sha256:b9d3abc5031e61927c82d4d96c1cec1e55676c1a991623cfed28faea73cdd7ca",
                "sha256:f58f2a3d12fd754aa123e9fa74fb7345333000a035f3921dbdaa08597aa53137"
            ],
            "version": "==0.4.4"
        },
        "pyasn1-modules": {
            "hashes": [
                "sha256:a0cf3e1842e7c60fde97cb22d275eb6f9524f5c5250489e292529de841417547",
                "sha256:a38a8811ea784c0136abfdba73963876328f66172db21a05a82f9515909bfb4e"
            ],
            "version": "==0.2.2"
        },
        "python-decouple": {
            "hashes": [
                "sha256:1317df14b43efee4337a4aa02914bf004f010cd56d6c4bd894e6474ec8c4fe2d"
            ],
            "index": "pypi",
            "version": "==3.1"
        },
        "python-mpv": {
            "hashes": [
                "sha256:13dbbbcbd996afda37163cae6d4cbad0ef510188e467b16bc50aadc2a2cbdd52"
            ],
            "index": "pypi",
            "version": "==0.3.9"
        },
        "pytz": {
            "hashes": [
                "sha256:a061aa0a9e06881eb8b3b2b43f05b9439d6583c206d0a6c340ff72a7b6669053",
                "sha256:ffb9ef1de172603304d9d2819af6f5ece76f2e85ec10692a524dd876e72bf277"
            ],
            "version": "==2018.5"
        },
        "pyzmq": {
            "hashes": [
                "sha256:25a0715c8f69cf72f67cfe5a68a3f3ed391c67c063d2257bec0fe7fc2c7f08f8",
                "sha256:2bab63759632c6b9e0d5bf19cc63c3b01df267d660e0abcf230cf0afaa966349",
                "sha256:30ab49d99b24bf0908ebe1cdfa421720bfab6f93174e4883075b7ff38cc555ba",
                "sha256:32c7ca9fc547a91e3c26fc6080b6982e46e79819e706eb414dd78f635a65d946",
                "sha256:41219ae72b3cc86d97557fe5b1ef5d1adc1057292ec597b50050874a970a39cf",
                "sha256:4b8c48a9a13cea8f1f16622f9bd46127108af14cd26150461e3eab71e0de3e46",
                "sha256:55724997b4a929c0d01b43c95051318e26ddbae23565018e138ae2dc60187e59",
                "sha256:65f0a4afae59d4fc0aad54a917ab599162613a761b760ba167d66cc646ac3786",
                "sha256:6f88591a8b246f5c285ee6ce5c1bf4f6bd8464b7f090b1333a446b6240a68d40",
                "sha256:75022a4c60dcd8765bb9ca32f6de75a0ec83b0d96e0309dc479f4c7b21f26cb7",
                "sha256:76ea493bfab18dcb090d825f3662b5612e2def73dffc196d51a5194b0294a81d",
                "sha256:7b60c045b80709e4e3c085bab9b691e71761b44c2b42dbb047b8b498e7bc16b3",
                "sha256:8e6af2f736734aef8ed6f278f9f552ec7f37b1a6b98e59b887484a840757f67d",
                "sha256:9ac2298e486524331e26390eac14e4627effd3f8e001d4266ed9d8f1d2d31cce",
                "sha256:9ba650f493a9bc1f24feca1d90fce0e5dd41088a252ac9840131dfbdbf3815ca",
                "sha256:a02a4a385e394e46012dc83d2e8fd6523f039bb52997c1c34a2e0dd49ed839c1",
                "sha256:a3ceee84114d9f5711fa0f4db9c652af0e4636c89eabc9b7f03a3882569dd1ed",
                "sha256:a72b82ac1910f2cf61a49139f4974f994984475f771b0faa730839607eeedddf",
                "sha256:ab136ac51027e7c484c53138a0fab4a8a51e80d05162eb7b1585583bcfdbad27",
                "sha256:c095b224300bcac61e6c445e27f9046981b1ac20d891b2f1714da89d34c637c8",
                "sha256:c5cc52d16c06dc2521340d69adda78a8e1031705924e103c0eb8fc8af861d810",
                "sha256:d612e9833a89e8177f8c1dc68d7b4ff98d3186cd331acd616b01bbdab67d3a7b",
                "sha256:e828376a23c66c6fe90dcea24b4b72cd774f555a6ee94081670872918df87a19",
                "sha256:e9767c7ab2eb552796440168d5c6e23a99ecaade08dda16266d43ad461730192",
                "sha256:ebf8b800d42d217e4710d1582b0c8bff20cdcb4faad7c7213e52644034300924"
            ],
            "markers": "python_version != '3.0*' and python_version != '3.1*' and python_version != '3.2*' and python_version >= '2.7'",
            "version": "==17.1.2"
        },
        "regex": {
            "hashes": [
                "sha256:22d7ef8c2df344328a8a3c61edade2ee714e5de9360911d22a9213931c769faa",
                "sha256:3a699780c6b712c67dc23207b129ccc6a7e1270233f7aadead3ea3f83c893702",
                "sha256:42f460d349baebd5faec02a0c920988fb0300b24baf898d9c139886565b66b6c",
                "sha256:43bf3d79940cbdf19adda838d8b26b28b47bec793cda46590b5b25703742f440",
                "sha256:47d6c7f0588ef33464e00023067c4e7cce68e0d6a686a73c7ee15abfdad503d4",
                "sha256:5b879f59f25ed9b91bc8693a9a994014b431f224f492519ad0255ce6b54b83e5",
                "sha256:8ba0093c412900f636b0f826c597a0c3ea0e395344bc99894ddefe88b76c9c7e",
                "sha256:a4789254a1a0bd7a637036cce0b7ed72d8cc864e93f2e9cfd10ac00ae27bb7b0",
                "sha256:b73cea07117dca888b0c3671770b501bef19aac9c45c8ffdb5bea2cca2377b0a",
                "sha256:d3eb59fa3e5b5438438ec97acd9dc86f077428e020b015b43987e35bea68ef4c",
                "sha256:d51d232b4e2f106deaf286001f563947fee255bc5bd209a696f027e15cf0a1e7",
                "sha256:d59b03131a8e35061b47a8f186324a95eaf30d5f6ee9cc0637e7b87d29c7c9b5",
                "sha256:dd705df1b47470388fc4630e4df3cbbe7677e2ab80092a1c660cae630a307b2d",
                "sha256:e87fffa437a4b00afb17af785da9b01618425d6cd984c677639deb937037d8f2",
                "sha256:ed40e0474ab5ab228a8d133759d451b31d3ccdebaff698646e54aff82c3de4f8"
            ],
            "version": "==2018.8.29"
        },
        "requests": {
            "hashes": [
                "sha256:63b52e3c866428a224f97cab011de738c36aec0185aa91cfacd418b5d58911d1",
                "sha256:ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a"
            ],
            "index": "pypi",
            "version": "==2.19.1"
        },
        "rpi.gpio": {
            "hashes": [
                "sha256:a5fc0eb5e401963b6c0a03650da6b42c4005f02d962b81241d96c98d0a578516"
            ],
            "index": "pypi",
            "version": "==0.6.3"
        },
        "rsa": {
            "hashes": [
                "sha256:25df4e10c263fb88b5ace923dd84bf9aa7f5019687b5e55382ffcdb8bede9db5",
                "sha256:43f682fea81c452c98d09fc316aae12de6d30c4b5c84226642cf8f8fd1c93abd"
            ],
            "version": "==3.4.2"
        },
        "six": {
            "hashes": [
                "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
                "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
            ],
            "version": "==1.11.0"
        },
        "spidev": {
            "hashes": [
                "sha256:09d2b5122f0dd79910713a11f9a0020f71537224bf829916def4fffc0ea59456"
            ],
            "version": "==3.2"
        },
        "spotipy": {
            "hashes": [
                "sha256:4b05da481b5c5dd4d1da8c0f0d13ca805dde037db648d12be866244b19501ed1"
            ],
            "index": "pypi",
            "version": "==2.4.4"
        },
        "tblib": {
            "hashes": [
                "sha256:436e4200e63d92316551179dc540906652878df4ff39b43db30fcf6400444fe7",
                "sha256:9bae4b8c44b06af0e114bfc4d5f6aa3eafd2119af5a4dcab34f51f1665f16c59"
            ],
            "version": "==1.3.2"
        },
        "uritemplate": {
            "hashes": [
                "sha256:01c69f4fe8ed503b2951bef85d996a9d22434d2431584b5b107b2981ff416fbd",
                "sha256:1b9c467a940ce9fb9f50df819e8ddd14696f89b9a8cc87ac77952ba416e0a8fd",
                "sha256:c02643cebe23fc8adb5e6becffe201185bf06c40bda5c0b4028a93f1527d011d"
            ],
            "version": "==3.0.0"
        },
        "urllib3": {
            "hashes": [
                "sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
                "sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
            ],
            "markers": "python_version >= '2.6' and python_version != '3.0.*' and python_version != '3.2.*' and python_version != '3.1.*' and python_version != '3.3.*' and python_version < '4'",
            "version": "==1.23"
        },
        "youtube-dl": {
            "hashes": [
                "sha256:42c2e82280c943ce618969c3ceeea56666554f311e86a8082c72ec91a63885a9",
                "sha256:fc7d1c9e69c44cdf3b11b056d382502e1851bdcd900ff0ced61b6c65d2e4098c"
            ],
            "index": "pypi",
            "version": "==2018.9.8"
        },
        "zproc": {
            "editable": true,
            "git": "https://github.com/pycampers/zproc.git",
            "ref": "0f64ddb5ecf85b299c074f9440ee7be15eebb777"
        }
    },
    "develop": {
        "atom": {
            "hashes": [
                "sha256:0365437952c72843d339c69f679b6cd38ac8f699be56b70086d2c188f090839f",
                "sha256:0c3a8f982a674d6dc0bd637f7f5930662e69b26ad5f2e866aed3a8bcbcd1913b",
                "sha256:13089d12233b11198a1a09372c9f1f24524f26f291d615bb6968bcbdccb0e108",
                "sha256:1afae6b7ef17fb92b1b9cd81960022b89c0112315d7d1eba36f2d42b82aa686a",
                "sha256:243c9ed0be8b668746d9d789ee1aeb8040e5f343639652ddc1da4a1a784500ea",
                "sha256:54d30458e9d1f433911180eaba811b6aab542786d67417fc830a31494a306510",
                "sha256:5dedf4acdec1fced648f4b02aaffa0f6e8e138930334c5ba75874558dca263ca",
                "sha256:5ea08b9da01cf28279e4427821dff6c7d73e11b0ba5af4b8fc9e012435ba3bcd",
                "sha256:60ee794a3068571c7a872bca234e51c57982c5211d420c30561a987192b9c2f8",
                "sha256:6b6fb740789a4a9224045e7c64e851d89179fafe60054b45e449d400910a2762",
                "sha256:74582e79110bfde74839e6bee6c224f8d2c475eea162157a74f536e071b0e5f6",
                "sha256:76b7b25f0d5f0b1dd4f96bcf954d05ba189d376b7c7d7976a4a292864e154e44",
                "sha256:78802f83c83d8478370867dcb2334077342593c7e0270558c26cb862d0463465",
                "sha256:91071f0735e02075f8be72375df8e009e24b12053ccb3d776956ce2194fd0462",
                "sha256:94d30e7913d1cc8707240f32fa25904efa37c09169b66cd41536db8b35d1c3ad",
                "sha256:97bb7f7f8b82ea5855101a1978bf961db4de50d1b87d5e61c2694c7e59aeab43",
                "sha256:a58d568a074996e8fafdad23f2d00dfda7237416b6343fb81c2d3db4ef733024",
                "sha256:b20215353f67e24e4dbd0c8e0cc6c9f3c4a78782e73bcea035250ed59b9b7844",
                "sha256:b89940c78a00008aaf70cba56cdaae653105bfc52b123b9f171ab8dd7f566236",
                "sha256:bbca07d519defbf0d6066a725285a9b30cb8bbf7c880f602f062b83189929f2b",
                "sha256:c5971f8ac8132f5d8cac7092c8910bb4c9f93dcaad0721ebf576ca68636110ce",
                "sha256:e5b2fb5dd7ae8c1bb9d46df1b57465eb31a890d31b45e309f0d17f9dcff49c8d",
                "sha256:f79ed6880f64caa0c5fbfb39f5d2ef3afc01fd94838d4513bc045bf107876f14"
            ],
            "version": "==0.4.1"
        },
        "backcall": {
            "hashes": [
                "sha256:38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4",
                "sha256:bbbf4b1e5cd2bdb08f915895b51081c041bac22394fdfcfdfbe9f14b77c08bf2"
            ],
            "version": "==0.1.0"
        },
        "decorator": {
            "hashes": [
                "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82",
                "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c"
            ],
            "version": "==4.3.0"
        },
        "enaml": {
            "hashes": [
                "sha256:02b86079b547990d381b14808ddcc887dbc4b10c0f9487e396547d096ecc7ed4",
                "sha256:06ba3ee2d6b9f73e270013622cdf31a33f948d9728e34510fc0698987c22d0ca",
                "sha256:1ad018b65ef5fa8e1a40d14fa7296edabdaaa6040cb63ad5aee2e32669c60db1",
                "sha256:280a62ae906587929393a0b98e866c0c0e3fe8db9abc1c2da41d5d117e87dd12",
                "sha256:330e66e8266e5709094d2b6666699838dc16f0740b78c6f26e0a94443c6aa0b1",
                "sha256:3e5fd24345c9550d04f1bde98baba15b9c1d9403c0e1660e3bb4bc3306c85de3",
                "sha256:4824e9de26a7c261dfba7d0a59c4f47b4239a49efa69b6f1b0c42afecfd429db",
                "sha256:4daa3c42f3194eac7c699a0a129c358d94ad21aa746c522e823e1ca31b2c9fd8",
                "sha256:5ac759d168083e193ab3dd54d80758dc6b31b0f974367dde65d6771e8e52a4b0",
                "sha256:6c8cfd1dad5df63dc80a187599887148729eb6124d6711086a942cc43a2fe998",
                "sha256:7449209029d5a43e6668bfeb523f53901d78b8561df2687b4a372862751ccc59",
                "sha256:962a3146302c0b63800dfd25e063d044c8f83bd464ad7b49a4e2043e4a59ee6b",
                "sha256:a222dcf695e934611a960bbb7c3850a9a6a0cd48263a30f173c95e779e3a791d",
                "sha256:b1fb9e77698f16d56d4c8451c16320d848818050b19a94cafef7c902ad2d7a14",
                "sha256:d372d76e51f4daa5006d6f896c11bc8b7f85536009945865fbae766f7fc4fd46",
                "sha256:d44fe4795beea975955dd102f09d314a3ee4d67745b4d8a7899782821ea33438",
                "sha256:d5ada10215adad8970509760eb60d607a614ec07dcd38d4c24e5dc5ac1eef0a8",
                "sha256:da4ac5d0e213aa84544b37f3382cff49e8400b44034c2b4d7b868dd92b3b450e",
                "sha256:e271f350062b56153217493d6e64a50428024546a62930b1a2675e935670a618",
                "sha256:e813c5448d0f47fadd91a25a580f364fe93982a88134043995f7a77ab9675d19",
                "sha256:ecd2abd99e429831a3404877910b576d51421d6954a25a267aaa466c20e921b7",
                "sha256:f10e7c711c34f76618f54aa88aafde5e931aba2bbe8ace844f42160676f63007",
                "sha256:f9d8302e7956600053d78f6f43773d8afbcfb72ac6fa3a596882cde66f4622ce"
            ],
            "index": "pypi",
            "version": "==0.10.2"
        },
        "future": {
            "hashes": [
                "sha256:e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
            ],
            "version": "==0.16.0"
        },
        "ipython": {
            "hashes": [
                "sha256:007dcd929c14631f83daff35df0147ea51d1af420da303fd078343878bd5fb62",
                "sha256:b0f2ef9eada4a68ef63ee10b6dde4f35c840035c50fd24265f8052c98947d5a4"
            ],
            "index": "pypi",
            "version": "==6.5.0"
        },
        "ipython-genutils": {
            "hashes": [
                "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8",
                "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"
            ],
            "version": "==0.2.0"
        },
        "jedi": {
            "hashes": [
                "sha256:b409ed0f6913a701ed474a614a3bb46e6953639033e31f769ca7581da5bd1ec1",
                "sha256:c254b135fb39ad76e78d4d8f92765ebc9bf92cbc76f49e97ade1d5f5121e1f6f"
            ],
            "version": "==0.12.1"
        },
        "kiwisolver": {
            "hashes": [
                "sha256:0ee4ed8b3ae8f5f712b0aa9ebd2858b5b232f1b9a96b0943dceb34df2a223bc3",
                "sha256:0f7f532f3c94e99545a29f4c3f05637f4d2713e7fd91b4dd8abfc18340b86cd5",
                "sha256:1a078f5dd7e99317098f0e0d490257fd0349d79363e8c923d5bb76428f318421",
                "sha256:1aa0b55a0eb1bd3fa82e704f44fb8f16e26702af1a073cc5030eea399e617b56",
                "sha256:2874060b91e131ceeff00574b7c2140749c9355817a4ed498e82a4ffa308ecbc",
                "sha256:379d97783ba8d2934d52221c833407f20ca287b36d949b4bba6c75274bcf6363",
                "sha256:3b791ddf2aefc56382aadc26ea5b352e86a2921e4e85c31c1f770f527eb06ce4",
                "sha256:4329008a167fac233e398e8a600d1b91539dc33c5a3eadee84c0d4b04d4494fa",
                "sha256:45813e0873bbb679334a161b28cb9606d9665e70561fd6caa8863e279b5e464b",
                "sha256:53a5b27e6b5717bdc0125338a822605084054c80f382051fb945d2c0e6899a20",
                "sha256:574f24b9805cb1c72d02b9f7749aa0cc0b81aa82571be5201aa1453190390ae5",
                "sha256:66f82819ff47fa67a11540da96966fb9245504b7f496034f534b81cacf333861",
                "sha256:79e5fe3ccd5144ae80777e12973027bd2f4f5e3ae8eb286cabe787bed9780138",
                "sha256:83410258eb886f3456714eea4d4304db3a1fc8624623fc3f38a487ab36c0f653",
                "sha256:8b6a7b596ce1d2a6d93c3562f1178ebd3b7bb445b3b0dd33b09f9255e312a965",
                "sha256:9576cb63897fbfa69df60f994082c3f4b8e6adb49cccb60efb2a80a208e6f996",
                "sha256:95a25d9f3449046ecbe9065be8f8380c03c56081bc5d41fe0fb964aaa30b2195",
                "sha256:a424f048bebc4476620e77f3e4d1f282920cef9bc376ba16d0b8fe97eec87cde",
                "sha256:aaec1cfd94f4f3e9a25e144d5b0ed1eb8a9596ec36d7318a504d813412563a85",
                "sha256:acb673eecbae089ea3be3dcf75bfe45fc8d4dcdc951e27d8691887963cf421c7",
                "sha256:b15bc8d2c2848a4a7c04f76c9b3dc3561e95d4dabc6b4f24bfabe5fd81a0b14f",
                "sha256:b1c240d565e977d80c0083404c01e4d59c5772c977fae2c483f100567f50847b",
                "sha256:c595693de998461bcd49b8d20568c8870b3209b8ea323b2a7b0ea86d85864694",
                "sha256:ce3be5d520b4d2c3e5eeb4cd2ef62b9b9ab8ac6b6fedbaa0e39cdb6f50644278",
                "sha256:e0f910f84b35c36a3513b96d816e6442ae138862257ae18a0019d2fc67b041dc",
                "sha256:ea36e19ac0a483eea239320aef0bd40702404ff8c7e42179a2d9d36c5afcb55c",
                "sha256:efabbcd4f406b532206b8801058c8bab9e79645b9880329253ae3322b7b02cd5",
                "sha256:f923406e6b32c86309261b8195e24e18b6a8801df0cfc7814ac44017bfcb3939"
            ],
            "markers": "python_version >= '2.7' and python_version != '3.2.*' and python_version != '3.1.*' and python_version != '3.0.*' and python_version != '3.3.*'",
            "version": "==1.0.1"
        },
        "parso": {
            "hashes": [
                "sha256:35704a43a3c113cce4de228ddb39aab374b8004f4f2407d070b6a2ca784ce8a2",
                "sha256:895c63e93b94ac1e1690f5fdd40b65f07c8171e3e53cbd7793b5b96c0e0a7f24"
            ],
            "version": "==0.3.1"
        },
        "pexpect": {
            "hashes": [
                "sha256:2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba",
                "sha256:3fbd41d4caf27fa4a377bfd16fef87271099463e6fa73e92a52f92dfee5d425b"
            ],
            "markers": "sys_platform != 'win32'",
            "version": "==4.6.0"
        },
        "pickleshare": {
            "hashes": [
                "sha256:84a9257227dfdd6fe1b4be1319096c20eb85ff1e82c7932f36efccfe1b09737b",
                "sha256:c9a2541f25aeabc070f12f452e1f2a8eae2abd51e1cd19e8430402bdf4c1d8b5"
            ],
            "version": "==0.7.4"
        },
        "ply": {
            "hashes": [
                "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3",
                "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce"
            ],
            "version": "==3.11"
        },
        "prompt-toolkit": {
            "hashes": [
                "sha256:1df952620eccb399c53ebb359cc7d9a8d3a9538cb34c5a1344bdbeb29fbcc381",
                "sha256:3f473ae040ddaa52b52f97f6b4a493cfa9f5920c255a12dc56a7d34397a398a4",
                "sha256:858588f1983ca497f1cf4ffde01d978a3ea02b01c8a26a8bbc5cd2e66d816917"
            ],
            "version": "==1.0.15"
        },
        "ptyprocess": {
            "hashes": [
                "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0",
                "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f"
            ],
            "version": "==0.6.0"
        },
        "pygments": {
            "hashes": [
                "sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d",
                "sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc"
            ],
            "version": "==2.2.0"
        },
        "pyqt5": {
            "hashes": [
                "sha256:700b8bb0357bf0ac312bce283449de733f5773dfc77083664be188c8e964c007",
                "sha256:76d52f3627fac8bfdbc4857ce52a615cd879abd79890cde347682ff9b4b245a2",
                "sha256:7d0f7c0aed9c3ef70d5856e99f30ebcfe25a58300158dd46ee544cbe1c5b53db",
                "sha256:d5dc2faf0aeacd0e8b69af1dc9f1276a64020193148356bb319bdfae22b78f88"
            ],
            "index": "pypi",
            "version": "==5.11.2"
        },
        "pyqt5-sip": {
            "hashes": [
                "sha256:3bcd8efae7798ce41aa7c3a052bd5ce1849f437530b8a717bae39197e780f505",
                "sha256:4a3c5767d6c238d8c62d252ac59312fac8b2264a1e8a5670081d7f3545893005",
                "sha256:67481d70fb0c7fb83e77b9025e15d0e78c7647c228eef934bd20ba716845a519",
                "sha256:7b2e563e4e56adee00101a29913fdcc49cc714f6c4f7eb35449f493c3a88fc45",
                "sha256:92a4950cba7ad7b7f67c09bdf80170ac225b38844b3a10f1271b02bace2ffc64",
                "sha256:9309c10f9e648521cfe03b62f4658dad2314f81886062cb30e0ad31b337e14b0",
                "sha256:9f524e60fa6113b50c48fbd869b2aef19833f3fe278097b1e7403e8f4dd5392c",
                "sha256:a10f59ad65b34e183853e1387b68901f473a2041f7398fac87c4e445ab149830",
                "sha256:abc2b2df469b4efb01d9dba4b804cbf0312f109ed74752dc3a37394a77d55b1f",
                "sha256:c09c17009a2dd2a6317a14d3cea9b2300fdb2206cf9bc4bae0870d1919897935",
                "sha256:c30c162e1430fd5a02207f1bd478e170c61d89fcca11ac6d8babb73cb33a86a8",
                "sha256:f00ceceef75a2140fda737bd30847ac69b7d92fbd32b6ea7b387017e72176bd8"
            ],
            "version": "==4.19.12"
        },
        "qtpy": {
            "hashes": [
                "sha256:2dbac4a848580ae03934e6deb8db65799d4bc52e1b0dd8a789067ab050c2df51",
                "sha256:5a121b42bd88df66c45e7c8d658045acdf63048666a32fb6726a826f8a232e02"
            ],
            "version": "==1.5.0"
        },
        "simplegeneric": {
            "hashes": [
                "sha256:dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173"
            ],
            "version": "==0.8.1"
        },
        "six": {
            "hashes": [
                "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
                "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
            ],
            "version": "==1.11.0"
        },
        "traitlets": {
            "hashes": [
                "sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835",
                "sha256:c6cb5e6f57c5a9bdaa40fa71ce7b4af30298fbab9ece9815b5d995ab6217c7d9"
            ],
            "version": "==4.3.2"
        },
        "wcwidth": {
            "hashes": [
                "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e",
                "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c"
            ],
            "version": "==0.1.7"
        }
    }
}

@nickdaniがapache-

  • pipenvバヌゞョン2018.5.18を䜿甚する
  • Pipfileパッケヌゞセクションで、次のように指定したす apache-airflow = "==1.10.0"
  • pipenv lock --clear実行したす

だから、それはロヌカルで機胜したした。

そしお、それを行った埌、生成されたPipfile.lockを䜿甚しお、 pipenv install --ignore-pipfileを䜿甚しお、別のマシンにむンストヌルされた゚アフロヌパッケヌゞで仮想環境を再䜜成できたす。 その欠点は、そのコマンドを再床実行するず、パッケヌゞがすでにむンストヌルされおいるこずを無芖しおいるように芋え、それらを再床むンストヌルするこずです。 たたは、正しいバヌゞョンがすでにむンストヌルされおいるこずを確認するのが非垞に遅いです。

apache-airflowむンストヌルで同様の問題が発生しおいたす。以䞋のような単玔なPipenv 、競合するclickバヌゞョン芁件に぀いお完党に䞍平を蚀っおいたす。

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
apache-airflow = {version = "*", extras = ["postgres", "crypto"]}

[dev-packages]

[requires]
python_version = "3.6"

残念ながら、今回はpipenv lock --clearは圹に立ちたせんでした。 click芁件を明瀺的に指定するず、別のモゞュヌルflask-login競合が発生したす。

apache-airflowをpipから盎接むンストヌルする堎合、期埅どおりに問題はありたせん。

最新のpipenvリリヌス2018.7.1たす。 䜕か案は

@gzagattiAirflowでも同じ問題が発生しおいたす。 問題は、Airflowがflask-loginを0.2.1に固定しおいるが、flask-appbuilderが> = 1.11.1であるため、1.12.0をプルするため、flask-login> = 0.3が必芁になるこずです。 click == 6.7ずflask-appbuilder == 1.11.1を固定できたすが、pip-toolsのバグのために解決できないすべおの䞭で最も厄介な競合が明らかになりたす私は思いたす。 䟝存関係グラフのどこにもJinja2> = 2.10はありたせんが、䜕らかの理由で、pipenvリゟルバヌによっお取埗されたす。 確かにJinja2 <2.9.0の芁件があるので、私たちは完党にそしお完党に立ち埀生しおいるこずに気づきたす...也杯 笑

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches jinja2<2.9.0,==2.8.1,>=2.10,>=2.4,>=2.5,>=2.7.3,>=2.8
Tried: 2.0, 2.1, 2.1.1, 2.2, 2.2.1, 2.3, 2.3.1, 2.4, 2.4.1, 2.5, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.5.5, 2.6, 2.7, 2.7.1, 2.7.2, 2.7.3, 2.8, 2.8, 2.8.1, 2.8.1, 2.9, 2.9, 2.9.1, 2.9.1, 2.9.2, 2.9.2, 2.9.3, 2.9.3, 2.9.4, 2.9.4, 2.9.5, 2.9.5, 2.9.6, 2.9.6, 2.10, 2.10
Skipped pre-versions: 2.0rc1
There are incompatible versions in the resolved dependencies.

@gzagatti @Mokubyow

私はairflow1.10をこのようなものずpipenv==2018.5.18たす。

[requires]
python_version = "2.7"

[packages]
apache-airflow = "==1.10.0"
flask-appbuilder = "==1.11.1"

これらが必芁だったずいうメモもありたす。

backports_abc = ">=0.4"
singledispatch = "~=3.4"

@jvstein。 有甚な掚薊をありがずう。 私はそれが私のために働いたこずを報告するこずができたす。 代わりにpython_version = "3.6"䜿甚したした。

apache-airflow = "==1.10.3"再び問題が発生したした。 正垞に動䜜したしたが、玄1週間前に倱敗し始めたした。 䟝存関係リゟルバヌは、jinja2の䟝存関係に぀いお文句を蚀いたす。
詩から解決メカニズムを抜出するための進行䞭の䜜業はありたすか

私もこれに盎面しおいたす。

気流の人々にずっお、詩は私のために働きたした

https://gist.github.com/jasonnerothin/aaacd3c8aec30bfca991fd04e2847ec9

今日も同様の問題が発生したした

pytest = "==3.6.4"
pytest-html = "*"

pytest-html2.0.0はpytest> = 5.0を远加したしたが、Pipfileのロックに倱敗したした... pytest-htmlを1.22.0に匷制するず、機胜したす。

Pipenv 2018.11.26最新リリヌスを䜿甚しお、別の䟋を远加したす。

これらの2぀のPipfileの䟋は倱敗したす

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
redis = "~=2.10"
rq = ">=0.8"

[requires]
python_version = "3.8"
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
redis = "~=2.10"
rq = "~=0.8"

[requires]
python_version = "3.8"

この゚ラヌの堎合

[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
 Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: ERROR: Could not find a version that matches redis>=3.0.0,~=2.10
Tried: 0.6.0, 0.6.1, 1.34, 1.34.1, 2.0.0, 2.2.0, 2.2.2, 2.2.4, 2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8, 2.4.9, 2.4.10, 2.4.11, 2.4.12, 2.4.13, 2.6.0, 2.6.1, 2.6.2, 2.7.0, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.8.0, 2.9.0, 2.9.1, 2.10.0, 2.10.1, 2.10.2, 2.10.3, 2.10.5, 2.10.5, 2.10.6, 2.10.6, 3.0.0, 3.0.0, 3.0.0.post1, 3.0.0.post1, 3.0.1, 3.0.1, 3.1.0, 3.1.0, 3.2.0, 3.2.0, 3.2.1, 3.2.1, 3.3.0, 3.3.0, 3.3.1, 3.3.1, 3.3.2, 3.3.2, 3.3.3, 3.3.3, 3.3.4, 3.3.4, 3.3.5, 3.3.5, 3.3.6, 3.3.6, 3.3.7, 3.3.7, 3.3.8, 3.3.8, 3.3.9, 3.3.9, 3.3.10, 3.3.10, 3.3.11, 3.3.11, 3.4.0, 3.4.0, 3.4.1, 3.4.1
There are incompatible versions in the resolved dependencies.

このPipfileは機胜したす

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
redis = "~=2.10"
rq = "<0.13,>=0.8"

[requires]
python_version = "3.8"

redis>=3.0.0 rq 0.13.0を必芁ずする最初のリリヌスが芋぀かるたで、リリヌスごずにrqのsetup.pyを調べお、これを手䜜業で解決したした。

rq = "~=0.8"たたはrq = ">=0.8"制玄がある堎合、有効なバヌゞョンたたはrq0.12.0、0.8.2などを芋぀けるこずができるはずです。 しかし、私はできたせん。0.13.0以降を取埗しようずしたすが、これはredis制玄ず互換性がありたせん。

詩は同じ制玄で解決策を芋぀けるこずができたす。 私はアプリケヌション開発のためにPipenvのワヌクフロヌを奜みたす詩はラむブラリに焊点を合わせすぎおいたす。 しかし、Pipenvを䜿甚しようずしたすべおの倧芏暡なアプリケヌションで、これらのincompatible versions in the resolved dependencies゚ラヌ手動で解決できたすが発生したした。

珟圚のマスタヌブランチの時点で、ここの元の投皿に蚘茉されおいる問題は解決されおいたす。

@antoncohen 2぀の倱敗した䟋の2番目は、珟圚のマスタヌブランチで機胜したすずにかく私にずっお

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
redis = "~=2.10"
rq = "~=0.8"

[requires]
python_version = "3.8"

最初の䟋は、pipenvが珟圚の゜ルバヌでバックトラッキングを䜿甚しおいないため倱敗したす。したがっお、最初のピン留めを行った埌、各ルヌト芁件の可胜なすべおの満足できるバヌゞョンを調べる必芁がある可胜性があるこずを理解しおいたせん。  ~=0.8ピンを介しお䞋䜍バヌゞョンを䜿甚するように指瀺するず、満足のいく解像床を芋぀けるこずができたした。

apache-airflowで苊劎しおいる方のために、私は圌らが䟝存状況の悪倢を今たでに修正したこずを願っおいたす。 私はもう仕事でairflowを展開しおいたせんが、私がいたずき、これも私が察凊しなければならなかった苊劎でした。 私はこれを簡単にテストしたしたが、問題のリリヌスはただ倱敗しおいたすが、珟圚のリリヌスはずにかく機胜しおいるようです合法的にピンが競合しおいるため

これらの問題がい぀解決されたかはわかりたせんが、最近芋おみようず思っお嬉しい驚きを芚えただけです。 これに぀いおはただやるべきこずがたくさんありたすが、状況は劇的に改善されおいたす。

しばらくお埅ちいただきたすようお願いいたしたす。

競合するバヌゞョンをオヌバヌラむドする方法はありたすか 競合するパッケヌゞのバヌゞョンを蚭定する方法が芋぀かりたせん。 Pipfileで蚭定しようずしたしたが、それでも競合が発生し、ロックファむルを生成できたせん。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡