Gibt es eine Möglichkeit, PIP-Extra-Index-URL-Funktionalität für die Auflösung der transitiven Abhängigkeit nachzuahmen?Python

Python-Programme
Anonymous
 Gibt es eine Möglichkeit, PIP-Extra-Index-URL-Funktionalität für die Auflösung der transitiven Abhängigkeit nachzuahmen?

Post by Anonymous »

In meiner Unternehmensumgebung sind wir gezwungen, PYPI durch unseren internen künstlichen Dienst, z. B.:

Code: Select all

https://[COMPANY URL]/artifactory/api/pypi/pypi-release/simple
Ich habe daher meine PYProject.toml damit als primäre Quelle eingerichtet:

Code: Select all

[[tool.poetry.source]]
name = "artifactory_release"
url = "https://[COMPANY URL]/artifactory/api/pypi/pypi-release/simple"
priority = "primary"
< /code>
Das [url=viewtopic.php?t=26065]Problem[/url] besteht darin, dass mein Unternehmen tatsächlich mehrere Artenfaktorebene für verschiedene Arten von internen Builds veranstaltet. Die meisten Projekte würden in einem anderen, in völlig enterlegten internen Repository gebaut und gehostet, das keinen Zugriff auf das breitere PYPI hat: < /p>
https://[COMPANY URL]/artifactory/api/pypi/python-internal-unstable/simple
Normalerweise würde ich dies als sekundäre/ergänzende Quelle wie SO auflisten:

Code: Select all

[[tool.poetry.source]]
name = "artifactory_unstable"
url = "https://[COMPANY URL]/artifactory/api/pypi/python-internal-unstable/simple"
priority = "supplemental"
Ich würde dann erwarten, dass ich Pakete speziell aus diesem sekundären Repository ziehen kann, indem ich die Abhängigkeiten in meinem PYProject.toml Datei wie SO:
>

Mein Problem ist, dass es so aussieht, als ob Poesie versucht, ihre Abhängigkeiten (d. H. Transitive Abhängigkeiten) über die gleiche sekundäre Quelle zu lösen, die keinen Zugriff auf die breiteren PYPI hat, wenn ich versuche, einige intern erstellte Pakete aus dieser sekundären Quelle zu ziehen. Dies führt daher zu einem Fehler: < /p>
(base) my-computer: curr_dir$ poetry lock
Updating dependencies
Resolving dependencies... (10.6s)

ValueError

Package('[MY PACKAGE]', '[VERSION NO]') is not in list

at ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/repositories/legacy_repository.py:66 in package
62│ Note that this will be cached so the subsequent operations
63│ should be much faster.
64│ """
65│ try:
→ 66│ index = self._packages.index(Package(name, version))
67│
68│ return self._packages[index]
69│ except ValueError:
70│ package = super().package(name, version, extras)

The following error occurred when trying to handle this error:

AssertionError

at ~/.local/pipx/venvs/poetry/lib/python3.11/site-packages/poetry/inspection/lazy_wheel.py:526 in _fetch_content_length
522│ # If we *could* download some file contents, then write them to the end of
523│ # the file and set up our bisect boundaries by hand.
524│ with self._stay():
525│ response_length = int(tail.headers["Content-Length"])
→ 526│ assert response_length == min(initial_chunk_size, ret_length)
527│ self.seek(-response_length, io.SEEK_END)
528│ # Default initial chunk size is currently 1MB, but streaming content
529│ # here allows it to be set arbitrarily large.
530│ for chunk in tail.iter_content(CONTENT_CHUNK_SIZE):
< /code>
Wenn ich eher normale PIP anstelle von Poesie verwende, kann ich das richtige Verhalten erzwingen, indem ich die primäre PYPI -INDEX -URL als zusätzliche Index -URL für dieses spezielle Paket angeben. Dadurch kann PIP mein Paket aus dem internen Feuerwall-Repository ziehen, seine Abhängigkeiten jedoch durch den öffentlichen PYPI-Proxy auflösen: < /p>
(base) my-computer: curr_dir$ python -m pip install --index-url https://[COMPANY URL]/artifactory/api/pypi/python-internal-unstable/simple/ --extra-index-url https://[COMPANY URL]/artifactory/api/pypi/pypi-release/simple [MY PACKAGE]
Looking in indexes: https://[COMPANY URL]/artifactory/api/pypi/python-internal-unstable/simple/, https://[COMPANY URL]/artifactory/api/pypi/pypi-release/simple
Collecting [MY PACKAGE]
Using cached https://[COMPANY URL]/artifactory/api/pypi/python-internal-unstable/[DIR PATH]/[MY PACKAGE]-[VERSION NO]-py3-none-any.whl (26 kB)
Requirement already satisfied: azure-monitor-opentelemetry=1.6.5 in /Users/[ME]/Library/Caches/pypoetry/virtualenvs/[POETRY ENV]/lib/python3.11/site-packages (from [MY PACKAGE]) (1.6.10)
Collecting opencensus-ext-azure=1.1.4 (from [MY PACKAGE])
...
...
...
Downloading https://COMPANY URL/artifactory/api/pypi/pypi-release/packages/packages/.../.../pyasn1-0.6.1-py3-none-any.whl (83 kB)
Installing collected packages: opencensus-context, typing-inspection, python-dotenv, pydantic-core, ..., opencensus-ext-azure, [MY PACKAGE]
Successfully installed annotated-types-0.7.0 cachetools-5.5.2 ... opencensus-ext-logging-0.1.1 [MY PACKAGE]-[VERSION NO] ... rsa-4.9.1 typing-inspection-0.4.1

[/code]
Ist das mit Poesie möglich?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post