Re: [Python] Oggi la Packt regala un libro su Python [Modern Python Cookbook]

2017-06-05 Per discussione Antonio Conte
* 05/06/2017, Francesco Maida wrote :
thx ... ho comprato un libro giusto 2 gg fa :)
-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] genropy for dummy

2015-12-04 Per discussione Antonio Conte
salve a tutti,

scusate la domanda forse banale ... uso Pylons/Pyramid per
le mie webapp e stavo cercando di capire se genropy facesse
al caso mio per futuri utilizzi.

mi sono perso completamente (certamente per mia ignoranza) nella
documentazione. ho creato il project ecc ecc ma la mia domanda e':

come faccio a mappare una url ad un file python ?

in Pylons/Pyramid ho il controller/action ... come funziona
in genropy ?

se qualcuno ha un link a qualche spiegazione piu' "terra terra"
mi farebbe un grosso favore postandomelo.

grazie anticipate

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Io lo so che coem sistemista faccio schifo

2015-03-19 Per discussione Antonio Conte
* 19/03/2015, Carlos Catucci wrote :
pero' che due maroni.
Ho sempre usato hosting (tipo Alwaysdata) che mi danno la possibilita'
di deployare un progetto Django senza dover impazzie troppo. Al massimo
richiedono una specigfica struttura nell'albero delel directories, tipo
mettere static in root del progetto oppure nelal cartella dove riside
anche settings.py, per dire.
Stavolta devo deployare su un server su cui o pieno accesso.
Primo tentativo: nginx+uwsgi. Non va neppure se lo prendo a calci sui
denti.

io uso nginx+uwsgi (emperor) con piu' webapp Pylons+Pyramid e funziona; ti 
passo di
seguito un esempio di configurazione; il file .ini e' lo standard 
Pylons/Pyramid.

nginx:

server {
...

location / {
include /etc/nginx/uwsgi_params;
uwsgi_param SCRIPT_NAME '';
uwsgi_read_timeout 180;
uwsgi_pass_request_headers on;
uwsgi_pass 127.0.0.1:5011;
}
}

uwsgi_params:
uwsgi_param  QUERY_STRING   $query_string;
uwsgi_param  REQUEST_METHOD $request_method;
uwsgi_param  CONTENT_TYPE   $content_type;
uwsgi_param  CONTENT_LENGTH $content_length;

uwsgi_param  REQUEST_URI$request_uri;
uwsgi_param  PATH_INFO  $document_uri;
uwsgi_param  DOCUMENT_ROOT  $document_root;
uwsgi_param  SERVER_PROTOCOL$server_protocol;
uwsgi_param  HTTPS  $https if_not_empty;
uwsgi_param  UWSGI_SCHEME   $scheme;

uwsgi_param  REMOTE_ADDR$remote_addr;
uwsgi_param  REMOTE_PORT$remote_port;
uwsgi_param  SERVER_PORT$server_port;
uwsgi_param  SERVER_NAME$server_name;

uwsgi:
uwsgi
socket0.0.0.0:5011/socket
pluginspython27/plugins
uidutentemio/uid
gidutentemio/gid
virtualenv/home/utentemio/projects/virtualenv
mastertrue/master
processes4/processes
harakiri180/harakiri
post-buffering1000/post-buffering
vacuumtrue/vacuum
ini-paste/home/utentemio/projects/acme/acme.ini/ini-paste
chdir/home/utentemio/projects/acme/chdir
envPYTHON_EGG_CACHE=/home/utentemio/tmp/env
pythonpath/home/utentemio/projects/acme/pythonpath

pythonpath/home/utentemio/.local/lib/python2.7/site-packages/pythonpath

pythonpath/home/utentemio/projects/lib/python2.7/site-packages/pythonpath
pythonpath/usr/lib/python2.7/site-packages/pythonpath
/uwsgi

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] thread e subprocess

2014-10-31 Per discussione Antonio Conte
* 29/10/2014, Manlio Perillo wrote :

volevo ringraziare Manlio e Daniele per i consigli. alla fine
ho risolto con il multiprocessing ThreadPool; codice piu' pulito,
lineare, leggibile e sicuro.

saluti

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] thread e subprocess

2014-10-30 Per discussione Antonio Conte
* 30/10/2014, Manlio Perillo wrote :
Nel tuo caso non credo valga la pena, a meno di avere un centinaio di
client e vuoi avere un alto livello di concorrenza.
Certo, evitare di usare thread e fork nello stesso programma è una
buona cosa:

eh infatti. magari non lo applico direttamente adesso, ma averne un idea
per trovarmi eventualmente preparato in futuro non sarebbe male.

saluti

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] thread e subprocess

2014-10-29 Per discussione Antonio Conte
salve a tutti,

sto lavorando su uno script che lancia su piu' client un comando. per il
momento sto usando subprocess, ma volevo lanciare i processi in parallelo
e ricavare l'output mano a mano che i processi terminano.

tenete conto che lo script va lanciato da cron, e mi serve l'output del comando
per inviarlo via mail.

dopo varie prove sono arrivato a questo, ma mi chiedevo se fosse il modo giusto
(cioe' l'utilizzo del contatore _act) per aspettare che tutti i processi 
terminino e per leggere dalla queue l'output.

grazie in anticipo:

[CODE]
#!/usr/bin/env python2.7
#
import subprocess as sp
import threading as thr
 
try:
import queue
except ImportError:
import Queue as queue

def run_command(qq, args):
try:
_cmd = list(args)
_userid = _cmd[1]
_proc = sp.Popen(_cmd, stdout=sp.PIPE, stderr=sp.PIPE)
(_stdout, _stderr) = _proc.communicate()

qq.put(' *** %s ***\n\n[STDOUT]: %s\n[STDERR]: %s\n\n *** END ***\n\n' 
% (
_userid, _stdout, _stderr,))
except Exception as err:
log.error('errore %s: %s' % (_userid, str(err)))
qq.put(' *** %s ***\n\n[ERRORE]: %s\n\n *** END ***\n\n' % (
_userid, str(err),))
finally:
qq.task_done()

def run_unison(clients, qq, args):
_act = 0

for k, v in clients.items():
for scr in v['server']:
_cmd = [ 'ssh', '%s@%s' % (k, v['host'],),
'/Users/%s/bin/%s_%s.command' % (k, k, scr,) ] + _extra_params

t = thr.Thread(target=run_command, args=(qq, _cmd))
t.start()

_act += 1

print(' ')

while _act  0:
_out_qq = qq.get()
print(_out_qq.decode('utf8'))
_act -= 1

if __name__ == '__main__':
qq = queue.Queue()
run_unison(_cli, qq, args)
[CODE]

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] thread e subprocess

2014-10-29 Per discussione Antonio Conte
* 29/10/2014, Daniele Varrazzo wrote :
 Preparati, perche' ora si scatena la flame war che scatta 
 automaticamente quando qualcuno pronuncia la parola thread.

lungi da me ! ;-) cmq cercando su internet ho trovato tutto e il 
contrario di tutto, ma mai precisamente quello che serviva a me.

 Penso vada abbastanza bene, perche' non hai race condition: _act viene 
 comunque gestito solo dal thread principale.

ok

 Un modo di coordinarsi piu` robusto sarebbe quello di usare Thread.join, 
 ma come avrai gia` scoperto questo ti impedirebbe di avere un output 
 graduale nel thread principale. Lo puoi usare se eviti la print nel loop 
 principale: lanci prima tutti i processi nei thread separati, poi 
 t.join() per ogni thread.

questo posso provare a farlo. ma il join lo mettersti DOPO aver lanciato
i singoli thread ? cioe' qualcosa del genere:

[CODE]
_ths = []
for k, v in clients.items():
for scr in v['server']:
_cmd = [ 'ssh', '%s@%s' % (k, v['host'],),
'/Users/%s/bin/%s_%s.command' % (k, k, scr,) ] + _extra_params

_ths.append(thr.Thread(target=run_command, args=(qq, _cmd)))
_ths[-1].start()

for _th in _ths:
_th.join()
[/CODE]

 Nel tuo codice, qq.task_done() non credo ti serva a niente: quello serve 
 se es. il thread principale chiamasse qq.put() e poi qq.join() ed avessi 
 un pool di worker thread che chiamassero qq.get() e qq.task_done(): 

ah ok ! ho letto malissimo io :-|

 cosi' potresti avere es. un pool di workers a lavoro in round-robin 
 sulla coda dei compiti (es. 10 processi a lavoro su 100 compiti). Tu 
 invece hai un mapping 1-1 tra processi e compiti e solo una coda di 
 risultati: la tua struttura e' piu' semplice ma probabilmente scala 
 peggio: se avessi 1000 compiti da fare la tua macchina non sarebbe molto 
 felice di lanciare 1000 thread + 1000 processi tutti insieme.

tieni conto che sono degli script da lanciare ogni 10/15 minuti su dei
Mac (con un lock in locale che impedisce di lanciare piu' volte lo
script) quindi niente di trascendentale.

cmq adesso ci provo a fare le correzioni che hai detto, e se ho altre 
domande mi faccio risentire.

grazie mille per le spiegazioni !

saluti

P.S. non uso cron sui Mac perche' dalla 10.8 in poi e' stato inglobato
in launchd e, praticamente, non funziona, senza nessun segnale nei log :-(

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] thread e subprocess

2014-10-29 Per discussione Antonio Conte
* 29/10/2014, Daniele Varrazzo wrote :
 Io ne posso pure tenere conto :) Ti spiego solo che finche' l'input e` 
 contenuto il programma ancora ancora funziona, ma resta uno script che a 
 fronte di un input di dimensioni impreviste avrebbe un'occupazione 
 illimitata di risorse. Sta a te tenerne conto :) Se hai gli elementi 
 per essere sicuro che non succedera` maimaimaimai puoi tenerlo com'e`, 
 oppure puoi renderlo robusto a fronte di imprevisti (e imparare a 
 coordinare un pool di workers con una queue, che e' un pattern molto 
 utile).

ok ... con la list ed il join funziona alla perfezione. poi magari
mi guardo anche i consigli di manlio.

grazie ancora

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] thread e subprocess

2014-10-29 Per discussione Antonio Conte
* 29/10/2014, Manlio Perillo wrote :
  tenete conto che lo script va lanciato da cron, e mi serve l'output
  del comando
  per inviarlo via mail.
 
  dopo varie prove sono arrivato a questo, ma mi chiedevo se fosse il
  modo giusto
  (cioe' l'utilizzo del contatore _act) per aspettare che tutti i
  processi
  terminino e per leggere dalla queue l'output.
 
Nel codice del thread ti suggerisco di usare la funzione
subprocess.check_output.
In generale io proverei ad usare multiprocessing.Pool ed il metodo map.

con map avevo problemi a passare i parametri, se nn mi sbaglio. adesso
che l'ho fatto girare magari ci perdo un po' piu' di tempo.

Purtroppo non esiste l'analogo Pool nel modulo threading, però da una
veloce ricerca è venuta fuori questa sorpresa:
[2]http://stackoverflow.com/questions/3033952/python-thread-pool-simila
r-to-the-multiprocessing-pool
 from multiprocessing.pool import ThreadPool
usando ThreadPool.map il tuo codice diventa molto più semplice ed
inoltre non soffri del problema che ti ha segnalato Daniele su troppi
processi/thread in esecuzione.

adesso vedo anche questo.

Se sei curioso esiste anche una alternativa senza usare un thread o
processo di supporto, ma è più complesso e non trovi nulla di pronto
nella stdlib (forse qualcosa in Python 3.x).

curioso sarei curioso ... cosa dovrei guardare ?

grazie e ciao

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] thread e subprocess

2014-10-29 Per discussione Antonio Conte
* 29/10/2014, Manlio Perillo wrote :
Quindi devi fare tutto a mano, ossia lanciare i processi con subprocess
(o fork + exec) e poi usare select/poll per verificare quando ci sono
dei dati da leggere dallo stdout di ciascun processo, accumulando i
dati in un buffer.  Se sei su Windows sono guai, ma si può fare anche
se in modo diverso.

i server sono Linux.
grazie mille. me la studio un po'

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Mac osx e cartella site-packages

2014-06-06 Per discussione Antonio Conte
* 06/06/2014, Daniele Zambelli wrote :
 Salve a tutti,
 
 In un corso che sto tenendo ho dei colleghi che possiedono un Mac, ma
 io non lo conosco per niente, potreste dirmi dove si trova la cartella
 dove mettere le librerie, quella che in Windows è site-packages o in
 Linux dist-packages?

macosx e' tipo unix ... se devi copiare librerie e non installarle, vai in 
utility
e apri il terminale. ti si apre nella home directory dell'utente loggato.

crea (presumendo tu voglia utilizzare la 2.7)

.local/lib/python2.7/site-packages

e copiaci le lib dentro. poi negli script eventualmente aggiungi all'inizio

import os, sys
sys.path.append(os.path.join(os.environ['HOME'], 
'.local/lib/python2.7/site-packages'))
import tualib

ciao ... spero di aver capito la domanda.

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come pubblico il mio progetto django?

2014-04-05 Per discussione Antonio Conte
* 05/04/2014, Gollum1 wrote :
 Ciao Lista,
 
 Sto studiando qualcosa di django (tempo tiranno permettendo), ma
 quello che non riesco a capire, è come pubblico poi il mio progetto?
 
 quello che non riesco a capire è come dire ad apache di usare python
 come interprete. da qualche parte leggo di usare mod-python (ma viene
 indicato come problematico in diversi forum), come ho trovato anche un
 altro modulo, che ora non ricordo più...

non uso Django ma Pylons/Pyramid, e nn uso apache ma nginx. se nn
vuoi mettere mano su apache per evitare problemi, installa
uwsgi e nginx e segui qualche tutorial tipo:

http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html

nn ci ho piu' provato, ma nn avendo php da mettere online ho lasciato
apache perche' mi aveva dato problemi con mod_python. con nginx+uwsgi e'
stato molto piu' semplice.

saluti

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] autenticazione windows

2014-03-14 Per discussione Antonio Conte
* 14/03/2014, Lorena Doria wrote :
ciao,
è utilissima e fa proprio al caso mio, però ho il problema che io devo
usare python 2.5 che non supporta la funzione with come posso ovviare
al problema?
Grazie 1

http://legacy.python.org/dev/peps/pep-0343/

Transition Plan

In Python 2.5, the new syntax will only be recognized if a future
statement is present:

from __future__ import with_statement

This will make both 'with' and 'as' keywords.  Without the future
statement, using 'with' or 'as' as an identifier will cause a
Warning to be issued to stderr.

-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python