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
$1uv 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/"
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
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).
Wie kann ich das erreichen?
Mobile version