question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Installation of non-required dependency

See original GitHub issue

One of my dependencies is using ruamel.yaml, which has a requirement on ruamel.ordereddict if the installation is happening on CPython <= 2.7.

This dependency does not install on Python 3, and it shouldn’t be installed – something pip honors.

Actually, pipenv honors this too, for an initial installation. However, it adds ruamel.ordereddict to the Pipfile.lock anyway, and the wheels come off there when doing a fresh installation of the pipenv. I.e.:

pipenv --rm
pipenv install --three  # now attempts to install ruamel.ordereddict, which has c bindings that won't compile.

Maybe I’m throwing edge cases at you today. But can we figure this out?

Here’s the lockfile:

{
    "_meta": {
        "hash": {
            "sha256": "0078ef581d9a09fffae8a4d729aaa6130bcbd078ecb6fb6be73221a9104b41f1"
        },
        "host-environment-markers": {
            "implementation_name": "cpython",
            "implementation_version": "3.6.1",
            "os_name": "posix",
            "platform_machine": "x86_64",
            "platform_python_implementation": "CPython",
            "platform_release": "16.7.0",
            "platform_system": "Darwin",
            "platform_version": "Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64",
            "python_full_version": "3.6.1",
            "python_version": "3.6",
            "sys_platform": "darwin"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.6"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.python.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "ruamel.ordereddict": {
            "hashes": [
                "sha256:150ce8e6c514a2a2b62753622a75874962561f8e5eeec81a3172ab952807bf0b",
                "sha256:45541836cbfdde630033cae7bbbe35acbac87a0ceec79f944b7a3bedd940fe78",
                "sha256:aee2fa23e884249b4284b728888c553d551e5bfd4de2731f10153fd7813ec55f",
                "sha256:08b4b19fe518d32251a5338e039c4dc9eb0876f2919f94c9b8d2f9446ea80806",
                "sha256:bf0a198c8ce5d973c24e5dba12d3abc254996788ca6ad8448eabc6aa710db149"
            ],
            "version": "==0.4.13"
        },
        "ruamel.yaml": {
            "hashes": [
                "sha256:4bdec0b1a4a12e4a35b788ef53e0b2efd1e9f815ca48615b5244ccdbc8f0b56b",
                "sha256:6432088ef1c3cdc4b304dcec6044e560160c1f51dd0360ae3f0887057d310056",
                "sha256:64868964b64cad9103f37d0b4fc0ec950e5b683bbc47bf4a1ea893fd70aaabf0",
                "sha256:c8da0ea47df5f2dee58f6f904335ac55098b7e72303b01414ce80f37dd3091df",
                "sha256:87bdfb04981f1040ec60b1d1bfa8e7e4d89f7d06c86d4b2fa935002c62e43380",
                "sha256:c20e853cb585167fd5e4ce6e1b57fefe7bd4a61659f8fec5f77e12efa59a7a77",
                "sha256:e884979944642b4ad3222cb102a0d4c17fed2d37abfffdf0f319fae6e41d436a",
                "sha256:10493c92c0e5bd57d576d73b708ed900532846ead1b381c5236c41d0c39f5f71",
                "sha256:3127a87b274e516b3bf2058f64d784089322fddd7322f8e78e9f5380bdfee064",
                "sha256:530bec874292bacbbb80a9143e5182ce436c2a2434a2ea83dda24d30b8e572df",
                "sha256:d92d90c9bc0945223e47223a67808dd97ac9390ed914cc6871479b7ba489e607",
                "sha256:3e87114aac9553c39eea4b88e258eb7fdce39b81a2c399a775efe1f64e4f3d7b",
                "sha256:dfd14829070728159d0dac55a19e4c77514cb8ad3ae3fc2ed065d7f24038b60f",
                "sha256:2f28a3b6665697c20d841a4aee21cfb932bb0db91f293ff97daf845b914ddddb",
                "sha256:2de7bd2d5713c46be9d1d489b028178c9497813f78bd0486a31bbe1c268d7f21",
                "sha256:ddf0e1277664fafff0ae692e8ea2fca56f1ee4daf686d9be785ccdf3a9542744",
                "sha256:f1e29054c6e477963e302b007b6cd1d6c7a58c38d78fabe64fde9ce170d2d1fd"
            ],
            "version": "==0.15.34"
        }
    },
    "develop": {}
}

And, here’s the output of pip freeze:

$ pipenv run pip freeze
ruamel.yaml==0.15.34

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Reactions:2
  • Comments:18 (17 by maintainers)

github_iconTop GitHub Comments

2reactions
kennethreitzcommented, Sep 26, 2017

I’m amazing.

1reaction
dfeecommented, Sep 26, 2017

So what are we supposed to make of the “fancy install process” that uses pipsi? Is that not a good approach?

I did end up installing pipsi with Python3, and that overcame my problem. But I guess --two would fail now.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Installation of non-required dependency with matplotlib #712
Everything installed properly. But when I run: $ pipenv install Installing dependencies from Pipfile.lock… An error occurred while installing ...
Read more >
Dependencies of dependencies are ignored by installation ...
An oddity I just ran into with D7: New installation of Drupal 7.7 core + many contrib modules; Rules (7.x-2.0-rc1) was downloaded. Entities...
Read more >
How to solve unmet dependencies when installing Nvidia ...
To solve. E: Unable to correct problems, you have held broken packages. Try: sudo apt-get install --fix-broken xorg-video-abi-11 xserver-xorg-core -y.
Read more >
pipinstall package - github.com/paketo-buildpacks/pip-install - Go ...
Build will install the pip dependencies by using the requirements.txt file to a packages layer. It also makes use of a cache layer...
Read more >
Create dependency diagrams from your code - Visual Studio ...
Delete non-required assemblies from the Code Map. Create a new Dependency Diagram for the solution using the Architecture menu. Select all the ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found