Hacker News new | past | comments | ask | show | jobs | submit login

    you can use pip install -r requirements.txt
I don't see a requirements.txt file.



Good spot. You can actually just run the following if you don't want to use poetry.

  pip install git+https://github.com/bsdz/calcengine.git#master
Unfortunately, this will only install the core library without the demo spreadsheet files. Even if you were to add the extras modifier "[demo]", it would only install additional dependencies and not the actual demo code. To use the demo you'll need to clone and follow instructions in my other comment.


This outputs many pages of debug information and then dies. The error seems to be this:

    This package requires Rust >=1.41.0.


Hold it! (Pretend I'm Ace Attorney: https://www.youtube.com/watch?v=2lQgZ52iONU&ab_channel=DHC)

The solution here is, your python environment is borked. I've seen this many times.

Step one, is to install a fresh Python. You can do that using pyenv: https://github.com/pyenv/pyenv#installation

  curl https://pyenv.run | bash
Once you can do `pyenv versions`, you should see `system` is your only python.

You can run `pyenv install 3.9` to get the latest.

Now that you're running the latest 3.9, the goal is to install each of the dependencies of this project, one by one.

Step one: try to run the project. It will fail with an error.

Step two: install the library that it says is missing.

Step three: Go to step one.

I've followed this algorithm so many times that I can't count anymore how often it's saved me. Forget poetry, and forget a requirements.txt file. This is the only way I do it on my local laptop. (And I usually use the regular system python, but, yours seems to be in a suspect state.)

If after all of this you still get errors, then I'm truly sorry; god be with you, you're not alone, but I'm not sure anyone can help. It's definitely not the fault of this project that pillow can't be installed. :)


> your python environment is borked. I've seen this many times

Your solution looks simple and easy to follow. There's a flow chart to simplify this process here: https://xkcd.com/1987/


That's very strange. The core library uses pure python and demo uses pyqt5, pandas, matplotlib and pillow. I wasn't aware that any of those projects (or sub projects) depend on Rust. I'm running on Linux / Ubuntu 20.04 with Python 3.8. How about you?

(The pip command I just gave should only install the core library and so only depends on base python).


Here is how to reproduce it in a fresh docker container, so we have the same environment:

    docker run -it --rm debian:10-slim /bin/bash

    apt update
    apt install -y git python3-pip --no-install-recommends
    pip3 install git+https://github.com/bsdz/calcengine.git#master
Result: "This package requires Rust >=1.41.0."


Yes you're right! There was something wrong with poetry build system. When I initialised the poetry project roughly a year ago it placed an unpinned dependency (for the build part) for cryptography which recently switched to rust. I'm not sure why poetry hadn't vendorized that package or, at least, pinned the version. In any case, I updated the repo's pyproject.toml to use poetry's new build settings. Then, to check the install works in docker I switched to python's base images and did the following:

  docker run -it --rm python:latest /bin/bash
  curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
  cd /tmp
  git clone https://github.com/bsdz/calcengine.git
  cd calcengine
  python3 -mvenv --prompt calceng .venv
  . ./.venv/bin/activate
  pip install "cppy>=1.1.0"
  ~/.poetry/bin/poetry install -E demo
Note that I had to force cppy to install using pip. At some point I'll refresh the poetry lock file to fix these glitches that seem to appear as an untouched project ages.


Does it depend on the cryptography library? https://github.com/pyca/cryptography/issues/5771


It doesn't look like it:

  $ grep name poetry.lock | cut -d" " -f3 | tr -d '"' | tr '\n' ', '
  appdirs,attrs,black,click,cycler,flake8,kiwisolver,matplotlib,mccabe,
  mypy,mypy-extensions,numpy,pandas,pathspec,pillow,pycodestyle,pyflakes,
  pyparsing,pyqt5,pyqt5-sip,python-dateutil,pytz,regex,six,toml,typed-ast,
  typing-extensions


> I'm running on Linux / Ubuntu 20.04 with Python 3.8. How about you?

Indeed, on Python 3.9 it doesn't install, as it requires Python 3.8.

I'd like to try this, how to proceed?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: