poetry cache clear pypi --all
poetry cache clear --all .
rm -rf ~/.cache/pypoetry
When updating a dependency, run:
poetry lock
poetry install
This will install an environment in a subfolder of:
~/.cache/pypoetry/virtualenvs/
You can point your IDE at the Python executable underneath this.
Poetry is pretty nice when showing you dependencies. Running something like:
poetry show pandas
shows you everything Pandas needs and everything that depends on it.
This was necessary when decoding a bizarre error in a Jupyter notebook where an import was failing when it was clearly there. In this case, statsmodel and Pandas seem to be disagreeing.
The code to put in the notebook to check it was using the right version of a library is:
import statsmodels
import pandas
print(statsmodels.__version__)
print(pandas.__version__)
print(statsmodels.__file__)
Now, compare this to the Python environment:
poetry run python - <<EOF
import statsmodels, pandas
print(statsmodels.__version__)
print(statsmodels.__file__)
print(pandas.__version__)
EOF
I had changed dependency versions but my IDE (PyCharm) did not recognise the change until I restarted it.
Some useful one-liners
Run your tests with:
poetry run pytest
The whereabouts of your tests can be found in your pyproject.toml file. It should look something like:
testpaths = ["tests"]
pythonpath = "src"
With this, your tests can import anything under the ROOT/src directory.
Add a dependency with something like:
poetry add ipykernel
This will update your metadata file.
No comments:
Post a Comment