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.

Markers now override unconditional dependencies resulting in a broken environment

See original GitHub issue

This is a carryover from a discussion on https://github.com/pypa/pipenv/issues/1659 and the simplest way I could find to replicate this behavior.

With this Pipfile on macOS and pipenv 11.8.0:

[[source]]

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

[requires]

python_version = "3.6"

[packages]

arrow = "*"
coverage-space = "*"
faker = "*"
fire = "*"
freezegun = "*"
inflection = "*"
jupyter = "*"
pillow = "~=4.3"
pycodestyle = "~=2.3.1"
pylint = "~=1.7.5"
pytest = "~= 3.3"
pytest-cov = "*"
pytest-describe = "*"
pytest-expecter = "~= 1.1"
pytest-html = "*"
pytest-json-report = "~= 0.6"
pytest-mock = "*"
pytest-ordering = "*"
pytest-random = "*"
splinter = "*"
tldextract = "*"
watchdog = "*"
$ pipenv install

Creating a virtualenv for this project…
Using /Users/Browning/.pyenv/versions/3.6.3/bin/python3.6m (3.6.3) to create virtualenv…
...
Installing dependencies from Pipfile.lock (1ba60a)…
Ignoring colorama: markers 'sys_platform == "win32"' don't match your environment
Ignoring funcsigs: markers 'python_version < "3.0"' don't match your environment
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 88/88 — 00:00:26
To activate this project's virtualenv, run the following:
 $ pipenv shell

which results in a broken environment:

$ pipenv run coverage.space
Traceback (most recent call last):
  File "/Users/Browning/.local/share/virtualenvs/colorama-demo-Q5bNGJGk/bin/coverage.space", line 7, in <module>
    from coveragespace.cli import main
  File "/Users/Browning/.local/share/virtualenvs/colorama-demo-Q5bNGJGk/lib/python3.6/site-packages/coveragespace/cli.py", line 24, in <module>
    import colorama
ModuleNotFoundError: No module named 'colorama'

despite coverage-space directly requiring it:

$ pipenv graph --reverse
...
colorama==0.3.7
  - coverage-space==1.0 [requires: colorama~=0.3]
...

So it seems that one of the other packages only requires colorama on Windows and their markers are overriding the fact that another package depends on colorama unconditionally.

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:26 (26 by maintainers)

github_iconTop GitHub Comments

1reaction
uranusjrcommented, Mar 22, 2018

I can confirm this is fixed. Adding a couple of tests for it.

1reaction
jacebrowningcommented, Mar 21, 2018

@techalchemy I am not able to reproduce this issue with 29a1a0b537f76586e543ea4d43b469e4ebf68174 on master.

Read more comments on GitHub >

github_iconTop Results From Across the Web

History | Poetry - Python dependency management and ...
Path dependency metadata is unconditionally re-locked (#6843). ... where not reading all the output of a command resulted in a “Broken pipe” error...
Read more >
requests Changelog - pyup.io
Requests now supports Brotli compression, if either the `brotli` or ... Changed the dependency markers to widen compatibility with older pip releases.
Read more >
Climate Change 2022
At the right side of Panel a, GHG emissions in 2019 are broken down into individual components with the associated uncertainties [90% confidence...
Read more >
Community Updates — Requests 2.28.1 documentation
should_bypass_proxies now handles URIs without hostnames (e.g. files). Dependencies. Requests now supports urllib3 v1.24. Deprecations. Requests has officially ...
Read more >
pytest fixtures: explicit, modular, scalable
Initialization may setup services, state, or other operating environments. These are accessed by test functions through arguments; for each fixture used by a ......
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