Pagina 1 di 2

[RISOLTO] Errore di distribuzione del pacchetto

Pubblicato: 23 marzo 2020 - 16:02
di Scud
Salve,
ho configurato un server WAPT e sto cercando di distribuire un file .exe con parametri inviati tramite Python.
Per essere più precisi, sto distribuendo owncloud.exe e ho creato del codice che popola automaticamente un file .cfg in modo che gli utenti debbano solo inserire le proprie password.
Nella console del server, tutto funziona correttamente. Posso installare e disinstallare il programma. Genero il pacchetto senza problemi, MA non appena lo distribuisco a un utente, ricevo un errore.

In allegato trovate il messaggio di errore e uno screenshot che mostra la versione di WAPT che sto utilizzando.
Il mio server è Windows Server 2012 R2 Datacenter. Il mio
computer di amministrazione è Windows 10 Pro.


Se avete bisogno del mio codice, non c'è problema, ma forse il messaggio di errore vi sarà utile senza sovraccaricarvi di informazioni.

Grazie in anticipo.

Re: Errore di distribuzione del pacchetto

Pubblicato: 24 marzo 2020 - 09:23
di sfontenau
Ciao,

ci manca il file setup.py. :(

Potresti anche pubblicare l'errore (clicca sulla macchina con l'errore, clicca sul pacchetto con l'errore)? L'errore del pacchetto si trova nel pannello in basso a destra.

Re: Errore di distribuzione del pacchetto

Pubblicato: 24 marzo 2020 - 12:13
di Scud
Salve,
grazie per la risposta.
Stamattina ho leggermente modificato il mio codice per utilizzare l'ultima versione di Owncloud (in formato .msi).
Ora l'installazione e la disinstallazione funzionano, ma le mie impostazioni non vengono applicate. Credo che si tratti di un errore di codifica, anche se il mio ambiente e la mia configurazione sono impostati correttamente su UTF-8.

Ho allegato il file setup.py
(e ho appena aggiunto il messaggio di errore come file .csv).

Lo scopo del mio script è precompilare le informazioni richieste dopo l'installazione di Owncloud,
ovvero il nome utente, il percorso di archiviazione locale e scrivere tutto in un file .cfg in una cartella di Windows.

In locale, utilizzando Python con le funzioni install e remove, funziona. Ma quando lo eseguo su un'altra macchina (per ora una virtuale), il mio script non sembra essere eseguito.

Grazie per l'aiuto.

Re: Errore di distribuzione del pacchetto

Pubblicato: 24 marzo 2020 - 16:07
di sfontenau
Quando si desidera interagire con l'ambiente utente, è necessario utilizzare session_setup:

https://www.wapt.fr/fr/doc/wapt-create- ... index.html

Ho rielaborato un po' il tuo codice:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *
import os

uninstallkey = []

url_owncloud = 'https://cloud.test.fr'

def install():
    print('installing frej-owncloud')
    install_msi_if_needed('ownCloud-2.6.1.msi')

def session_setup():

    homeowncloud = makepath(os.environ.get('HOMEPATH'),'ownCloud')
    owncloud_appdata = makepath(application_data(),'ownCloud')
    fichiercfg = makepath(owncloud_appdata,'owncloud.cfg')

    mkdirs(homeowncloud)
    mkdirs(owncloud_appdata)

    inside_owncloud_file = r"""[General]
clientVersion=2.6.1 (build 12992)
confirmExternalStorage=false
newBigFolderSizeLimit=500
optionalDesktopNotifications=true
showInExplorerNavigationPane=true
useNewBigFolderSizeLimit=false

[Accounts]
version=2
0\Folders\1\localPath=c:/Users/%s/ownCloud
0\url=%s
0\http_user=%s
0\user=%s""" % (get_current_user(),url_owncloud,get_current_user(),get_current_user())

    with open(fichiercfg, "w") as fichier:
        fichier.write(inside_owncloud_file)

Re: Errore di distribuzione del pacchetto

Pubblicato: 24 marzo 2020 - 17:08
di Scud
Grazie per la risposta.
Il tuo codice è molto più pulito del mio, ma scusami, studio Python solo da due settimane. :D
Comunque, non credo che i file vengano scritti nella posizione corretta, o addirittura che vengano popolati.

Ora però ho la testa che mi gira, quindi per stasera smetto di programmare. Farò dei test domani e ti fornirò un resoconto completo.

Grazie ancora

Re: Errore di distribuzione del pacchetto

Pubblicato: 25 marzo 2020 - 11:49
di sfontenau
Questa è la configurazione della sessione.

La configurazione della sessione inizia quindi all'apertura della sessione stessa.

Re: Errore di distribuzione del pacchetto

Pubblicato: 26 marzo 2020 - 09:38
di Scud
Ciao,
devo aver commesso un errore perché non funziona. Ho sostituito tutto il mio codice con il tuo, ma non scrive nulla nel file .cfg.
Per quanto riguarda il tuo codice, non vedo dove definisci la variabile `current_user`.

Dato che è una funzione nota di Wapt, non devo includerla nel codice, giusto?

Allo stesso modo, per la variabile `session_setup`, ho difficoltà a capire come recupera automaticamente tutte le variabili (percorsi, ecc.) e come scrive nel file. Il mio codice era più "grezzo" ma più facile da capire per un principiante. ;)

Grazie per l'aiuto.

Re: Errore di distribuzione del pacchetto

Pubblicato: 26 marzo 2020 - 12:50
di sfontenau
Per me funziona comunque

E nella parte superiore dello script, importiamo setuphelpers:

Codice: Seleziona tutto

from setuphelpers import *
Questo spiega perché abbiamo già molte cose disponibili; pyscripter offre il completamento automatico per aiutarti.

Per le diverse cose da usare:
- `get_current_user()` è in setuphelpers e recupera l'utente corrente
- install_msi_if_needed è in setuphelpers, disinstalla facilmente un MSI
- os.environ.get('HOMEPATH') è approssimativamente il valore di %HOMEPATH%
- `makepath` è in setuphelpers, ti permette di trasformare questo `makepath('c:','toto','tata')` in questo `'c:\toto\tata'`
- mkdirs è in setuphelpers, crea una cartella
- url_owncloud è definito nella parte superiore di setup.py
- inside_owncloud_file rappresenta il contenuto del nostro file con le diverse variabili (%s) https://python.developpez.com/cours/Div ... trings.php

Re: Errore di distribuzione del pacchetto

Pubblicato: 26 marzo 2020 - 15:19
di Scud
Ho appena eseguito un altro test.
Ho eliminato il pacchetto dal mio repository privato (e mi sono reso conto che se mantieni lo stesso nome, devi eliminarlo tante volte quante lo hai aggiunto).
Una volta vuoto, ho ricreato un pacchetto usando il tuo codice. Stesso risultato. Owncloud si installa e si disinstalla senza problemi.
Tuttavia, chiudo la sessione (o addirittura la riavvio) e non creo una cartella, quindi non popola il file .cfg.

Re: Errore di distribuzione del pacchetto

Pubblicato: 26 marzo 2020 - 15:22
di sfontenau
In un prompt dei comandi puoi eseguire:

Codice: Seleziona tutto

wapt-get session-setup nomdevotrepaquet -f