Ambro17 / python-packaging-pyarmeetup-2022

Python Packaging Best Practices (2022)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pyar Meetup 2022

This package was created as a demo following this guide https://packaging.python.org/en/latest/tutorials/packaging-projects/ on 8 Feb 2022

Instructions

  1. Create an activate a virtualenv
python3 -m pip install --upgrade pip   # Install project dependencies
python3 -m pip install --upgrade build # Build wheels and sdist from source files
python3 -m pip install --upgrade twine # Upload wheels and sdists to pypi
python3 -m pip install --upgrade wheel # To be able to install from wheels instead of sdists
#or just
python3 -m pip install --upgrade pip build twine wheel
  1. Build wheel and sdist (zip of source tree) from source
* Creating venv isolated environment...
* Installing packages in isolated environment... (setuptools>=42, wheel)
* Getting dependencies for sdist...
* Building sdist...
* Building wheel from sdist
* Creating venv isolated environment...
* Installing packages in isolated environment... (setuptools>=42, wheel)
* Getting dependencies for wheel...
* Installing packages in isolated environment... (wheel)
* Building wheel...
Successfully built pyarmeetup2020-0.0.1.tar.gz and pyarmeetup2020_ambro17-0.0.1-py3-none-any.whl

And then check with

$ ls dist/
pyarmeetup2020-0.0.1.tar.gz           pyarmeetup2020-0.0.1-py3-none-any.whl
  1. Upload wheel and sdist to pypi
twine upload --repository testpypi dist/*
  1. Test it Run python and then
>>> from pyarmeetup2020 import example
>>> example.should_i_pin_pip()
'Probably not'

Expected Error While Installing Bad Lib

ERROR: Cannot install pyarmeetup2020 and pyarmeetup2020==0.0.2 because these package versions have conflicting dependencies.

The conflict is caused by:
    pyarmeetup2020 0.0.2 depends on Flask>=2.0.2
    elpasado 0.0.4 depends on Flask==1.0.1

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

If we try to downgrade to pip 20.2.0 we get

ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.

We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.

elpasado 0.0.7 requires Flask==1.0.1, but you'll have flask 2.0.2 which is incompatible.

DO NOT PIN PIP!! Solve the root problem!

About

Python Packaging Best Practices (2022)

License:MIT License


Languages

Language:Python 100.0%