environment mit python3: 'python3 -m venv test-env' scheitert weil ensurepip nicht da

eric123

Benutzer
Mitglied seit
22. Dez 2020
Beiträge
2
Punkte für Reaktionen
1
Punkte
53
Hallo Leute,

ich habe python3 über das Paket-Zentrum eingerichtet. pip habe ich wie folgt installiert (wobei pip hier wohl noch keine Rolle spielt):
Code:
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py


Nun möchte ich ein environment mit python3 einrichten. Das scheitert wie folgt:

Code:
admin@DiskStation:~/py$ python3 -m venv test-env
Error: Command '['/volume1/homes/admin/py/test-env/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.

und wenn ich python3 -m ensurepip versuchem kommt folgendes:

Code:
admin@DiskStation:~/py$ python3 -m ensurepip
/usr/local/bin/python3: No module named ensurepip

Suche nach ensurepip im Forum hat die beiden folgenden hits, die aber andere Probleme lösen:
https://www.synology-forum.de/threa...ation-von-pip-phyton-dsm-6.74383/#post-623284https://www.synology-forum.de/threa...ation-von-pip-phyton-dsm-6.74383/#post-610819
Wäre nett, wenn jemand helfen könnte. Danke!

DS213j
DSM 6.2.3-25426 Update 3
 

eric123

Benutzer
Mitglied seit
22. Dez 2020
Beiträge
2
Punkte für Reaktionen
1
Punkte
53
Es scheint wohl so zu sein, dass bei einigen distros ensurepip bewusst weggelassen wird.
Ich habe nun einen workaround gefunden, der (zumindest für mich) sehr praktikabel ist, die Schritte sind entnommen aus:
https://github.com/jedie/PyHardLinkBackup/blob/master/boot_pyhardlinkbackup.sh#L13-L29Der Trick ist einfach die Option --without-pip beim Einrichten und dann pip via bootstrap in das env holen.


Am Beispiel environment im Ordner='test-env':

1.) checken, ob bash läuft (bspw. mit echo $BASH), sonst kann source in Schritt 3.) in die Buchse gehen, zsh müsste aber auch ok sein
(das ist insbesondere relevant, weil die DS manchmal auf ash wechseln könnte, bspw. nach sudo su)

2.) python3 -Im venv --without-pip test-env

3.) cd test-env und dann source bin/activate
wenn alles ok ist, dann müsste bash-prompt in etwa so aussehen:
(test-env) admin@DiskStation:~$

4.) cd bin und dann:
wget --timestamp https://bootstrap.pypa.io/get-pip.py

5.) python get-pip.py
(dann get-pip.py löschen... oder halt nicht)

Fertig
 
  • Like
Reaktionen: Gemikro

Gemikro

Benutzer
Mitglied seit
07. Feb 2021
Beiträge
1
Punkte für Reaktionen
0
Punkte
1
Hi eric123,

danke für die Info, hatte auch das Problem auf der DS418 das pip und ensurepip fehlt, mit Deiner Anleitung hats jetzt funktioniert.
Bei mir ist aber bash nicht die default shell sondern als Admin sh und als root ash und bei beiden ist source nicht verfügbar, bin daher genau in das Problem mit Punkt 3 gelaufen. Mit Aufruf von bash vorher war dann alles Ok.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.101
Punkte für Reaktionen
253
Punkte
129
Ich hab kurz mal versucht, ob Apache, Tomcat, pyhton und git auf der Syno laufen, um für HomeAutomation was zu triggern im LAN.

Aber es benötigt immer wieder Hacks und andere Anpassungen, da die Installierten Pakete nicht immer alles liefern oder zum Teil total alt sind.

Ich für mich habe beschlossen, da nichts mehr in der Syno rumzutricksen, verwende sie als das was sie gut kann (Datengrab, Backup, Fotos und Streaming) und habe mir für die anderen Spielereien dann einen RasPi4 zugelegt.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat