Wie ersetzt man einen Twine-Upload durch UV-Publish?Python

Python-Programme
Anonymous
 Wie ersetzt man einen Twine-Upload durch UV-Publish?

Post by Anonymous »

Wir haben ein internes Tool, das einfach dadurch verteilt wurde, dass Benutzer das Git-Repository geklont haben. Der Zweck des Tools besteht darin, neu erstellte virtuelle Maschinen zum späteren Testen unseres „echten“ Produkts zu konfigurieren.
Um unseren Benutzern die Arbeit zu erleichtern, möchten wir, dass das Tool innerhalb dieser VMs ausgeführt wird (als Teil der VM-Erstellung selbst).
Die VMs haben Zugriff auf eine Artifactory-Instanz. Andere Leute haben auf dieser Instanz bereits einen lokalen PyPI-Ordner erstellt. Sobald sich mein Tool also in diesem lokalen PyPI-Ordner befindet, können die VM-Instanzen das Tool problemlos von diesem Speicherort aus installieren (dieser Teil funktioniert gut, ist nicht Teil meiner Frage).
Ich habe ein Skript geschrieben, das Twine verwendet, um unser Tool zu erstellen und dann in diesen Artifactory-Ordner hochzuladen:

Code: Select all

echo "Cleaning dist"
rm -rf ./dist/

echo "Building lastest version"
uv build

echo "Upload latest version"
python3 -m twine upload --repository-url https://whatever.com/artifactory/api/pypi/our-pypi-local -u $1 -p $2 dist/*
(

Code: Select all

$1
und $2 sind der Benutzername und das Token, die als Argument an das Skript übergeben werden.)
uv erstellt die .whl und .tar.gz und Twine lädt sie hoch. Funktioniert gut. Dann habe ich herausgefunden, dass uv das direkte Veröffentlichen unterstützt. Also habe ich
hinzugefügt

Code: Select all

[[tool.uv.index]]
name = "artifactory"
url = "https://whatever.com/artifactory/api/pypi/our-pypi-local/"
publish-url = "https://whatever.com/artifactory/api/pypi/our-pypi-local/"
in unsere Datei pyproject.toml. Dann habe ich mein Skript geändert in:

Code: Select all

echo "Cleaning dist"
rm -rf ./dist/

echo "Building lastest version"
uv build

echo "Upload latest version"
uv publish -v --index artifactory --username $1 --password $2
Aber das unterbricht bereits den Build-Schritt:

Code: Select all

Building source distribution...
× Failed to build `/Users/me/repos/mytool`
├─▶ Failed to resolve requirements from `build-system.requires`
├─▶ No solution found when resolving: `setuptools>=64`
╰─▶ Because setuptools was not found in the package registry and you require setuptools>=64, we can conclude that your requirements are unsatisfiable.

hint: An index URL (https://whatever.com/artifactory/api/pypi/our-pypi-local/) could not be queried due to a lack of valid authentication credentials (401
Unauthorized).
Aber: Ich möchte nicht, dass uv build irgendetwas abfragt. Ich möchte mein Werkzeug so aufbauen, wie es vorher war. Und dann möchte ich einfach, dass uv die beiden Dateien an diesen entfernten Speicherort verschiebt.
Wie kann ich das erreichen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post