Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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 this issue Oct 10, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@hf-kklein
Copy link
Contributor

Wir haben in #231 umgestellt

  • von (ALT) einzelnen requiements.txt mit einzeln gepinnten dependencies für jede linting/test/coverage usw. umgebung
  • auf (NEU) eine verbliebene requirements.txt mit pinning der echten package-dependencies und vielen optional-dependencies in der pyproject.toml, die auch direkt dort gepinnt werden (und indirekte dependencies pinnen wir in den optional dependencies gar nicht mehr)

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 hf-kklein added the bug Something isn't working label Oct 10, 2024
@hf-kklein
Copy link
Contributor Author

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
Copy link
Contributor Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant