Mkdocs-material: `pipenv install mkdocs-material` fails

Created on 13 May 2020  Β·  15Comments  Β·  Source: squidfunk/mkdocs-material

Noted in #1690 but it's a separate issue: when I do pipenv install mkdocs-material, it fails.

Steps to reproduce

Run:

mkdir mkdocs-pipenv
cd mkdocs-pipenv
pipenv install mkdocs-material

Observe this error:

ERROR: ERROR: Could not find a version that matches mkdocs-material-extensions>=1.0b1
Skipped pre-versions: 1.0b1, 1.0b1, 1.0b2, 1.0b2
There are incompatible versions in the resolved dependencies.

Screenshot 2020-05-13 at 22 35 13

Workarounds?

Adding --pre seems to work:

pipenv install mkdocs-material --pre

However, it installs (logically) pre-release dependencies which also doesn't seem quite right, see e.g. https://github.com/squidfunk/mkdocs-material/issues/1690#issuecomment-628228611.

Disclaimer

I'm not a Python developer so maybe I'm missing something simple, but pip / pipenv installation is mentioned as the first one in the Getting Started guide. Commonly, I'm a happy user of the official Docker container which works nicely.

All 15 comments

Duplicate of #1674

No, wrong. Not a duplicate but a problem with the fact that the extensions package is still a beta.

Doesn't look like a duplicate to me – I don't get any cyclic dependencies error.

What's the right way to install using pipenv then? Shouldn't pipenv install mkdocs-material just work?

No, you’re right. I corrected my initial comment. I was too quick πŸ˜…

Looks like you may need to use the --pre option. The mentioned extension is a prerelease :shrug:.

@facelessuser any plans to release the final version? Otherwise, with more users falling into this trap we might need to remove it from the requirements.txt at some point, which would be very sad.

Yeah, there are plans. I think at this point, it is as solid as it's going to be. The only issues I've received is user errors, so I think it is good to go.

Don't want to push you. Just asking how your plans are. Current errors are only with pipenv and pipdeptree. Don't know how widespread those tools are.

πŸ€·β€β™‚οΈ Generally, my response is it will be ready when it is ready. Based on what I've seen and tested, I think it is solid at this point. If we are going to continue to require it, we need at least one stable version out. I've got a couple things that are a little higher on my priority list, but I should be able to get a stable version out soon.

Isn't there a way to lock dependencies more explicitly? The following is a screenshot where:

  • The left side is generated by docker run --rm -it -v ${PWD}:/docs --entrypoint pip squidfunk/mkdocs-material freeze
  • The right side is generated by my local pip freeze and removing packages that are not related to mkdocs-material (I just ran pip install mkdocs-material a few moments ago).

Screenshot 2020-05-13 at 23 48 45

There are some "scary" differences like MarkupSafe being a 1.0 locally vs. 1.1.1 in the Docker image. Generally, _any_ difference is risky (JS/npm thought us that πŸ˜„) and there's a ton of differences here.

I don't know what the best way is though πŸ€·β€β™‚οΈ .

It is released as an official stable release.

Thanks @facelessuser! I'll update the requirements as soon as I get my hands on a computer 😊

The good news is that even if you don't update requirements, people should start getting it anyways.

Great, resolved, closing!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

BamBalaam picture BamBalaam  Β·  4Comments

michael-nok picture michael-nok  Β·  3Comments

nikramakrishnan picture nikramakrishnan  Β·  3Comments

lupupitkanen picture lupupitkanen  Β·  4Comments

tiangolo picture tiangolo  Β·  3Comments