Hochfrequenz / python_template_repository

A template repository that comes up with a pre-defined tox setup and CI actions.
7 stars 0 forks source link

Switch from `dev_requirements.txt` to `[project.optional-dependencies]` in `pyproject.toml` causes package itself to be installed into site-packages #237

Open hf-kklein opened 2 hours ago

hf-kklein commented 2 hours ago

Wir haben in #231 umgestellt

An sich ist das gut und richtig und @FreddyFox892 hat das dankenswerterweise schon auf fast alle Repos ausgerollt #228.

Jetzt hab ich leider ein Problem gefunden: Wenn ich in einem der umgestellten repos, z.b.

tox -re dev

ausführe, dann wird das paket aus dem repo selbst in die site-packages der umgebung installiert.

Hier im template-repo kann man z.b. sehen, dass <reporoot>/.tox/dev/lib/site-packages anschließend eine datei wie z.b. your_favourite_package_name-0.1.dev209+g30fc950.dist-info enthält und (z.b. bei efoli leicht testbar) teilweise auch nur your_favourite_package_name ohne das dev-suffix (hängt glaube ich daran, dass der build des dann in den site-packages installierten pakets auf die git/cvs-daten zugreift).

Dieses Verhalten ist etwas ungünstig, weil dann der pyhton-interpreter wenn man tests debuggt zumindest bei mir auf die Idee kommt, nicht den Code in src zu debuggen, sondern stattdessen die beim erstellen der tox-venv installierte version des packets in den site-packages, die ja auch noch gleich heißt wie das paket, das in src liegt. Man kann das mit pip uninstall you_favourite_package_name zurückdrehen aber schön ist das ja auch nicht.

Angeblich lässt sich das vermeiden, wenn man use_develop=true oder extras=... verwendet: https://stackoverflow.com/a/61885242/10009545 aber ich kriege es gerade nicht hin (siehe versuche in #235 )

hf-kklein commented 2 hours ago

meine erwartung:

  1. die CI läuft wieterhin grün durch
  2. in keiner tox-umgebung ist (konkret hier) your_favourite_package_name in den site packages installiert.
hf-kklein commented 26 minutes ago

Idee von Leon: vllt ist das gar nicht schlimm weil die ide das Paket aus den Site packages mit dem Paket im src überschreibt. Sonst mal sys path append anschauen