Skip to content

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

Description

@hf-kklein

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 )

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions