Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Datumbereik

CategorieŽn

AND

Onderwerpen

AND

Subforum

Topicstarter

Topicstatus

97 topics - Pagina 1 van 4

[python] Package install

18-01 15:26 vraag 4

Vraag

Beste Tweakers,

Ik heb een python script gemaakt dat werkt op os x.
Nu wil ik deze gebruiken op windows 10 nu moet ik nog enkele package installeren.
Het probleem is wanneer ik het commando pip install ********.
Ook wanneer ik een andere package installeer kom ik altijd op dezelfde fout code terecht.
code:
1 error: command 'C:\\Users\\NAS\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\cl.exe' failed with exit status 2
Visual C++ heb ik al geÔnstalleerd en het bestand bestaat maar kom altijd op dezelfde fout terecht.
Heb al wat info opgezocht op internet maar kom er niet veel verder mee.

[Python]Programmeren met Python: welke software is benodigd?

13-01 14:38 vraag 14

Vraag

Beste tweakers,

Voor het verwerken van grote hoeveelheden data wil ik mij graag verdiepen in python. Belangrijkste reden hiervoor is dat mijn werkgever al een groot aantal scripts klaar heeft liggen die geschreven zijn in python. Mijn programeerervaring: ik ben redelijk bekend met MATLAB en R, en heb inmiddels een aantal online python-tutorials bekeken.

Nu raden een aantal collega's mij aan om een softwarepakket als python(x,y) of anaconda te installeren. Ik ben benieuwd welke softwarepakketten jullie mij (iemand met weinig ervaring in pyhton) aanraden.

Ook zie ik termen als NumPy en SciPy langskomen. Ik heb wat zitten zoeken en volgens mij zijn dit essentiele tools voor data-analyse in python. Voor zover ik heb begrijp zitten deze ?libraries? standaard in een pakket als python(x,y). Zijn er op dit gebied nog andere libraries/modules waarvan het handig is om het bestaan ervan te weten?

Graag hoor ik van jullie.

Nginx proxy_pass gaat verkeerd met subdirectory

07-01 11:40 vraag 6

Vraag

Ik probeer een door middel van een reverse proxy een webapp benaderbaar te maken met nginx. Dit (python)programma draait in een dockercontainer en is benaderbaar op poort 881. Als ik via ssh een tunnel aanmaak op poort 881 kan ik het programma prima benaderen, tot zo ver werkt dat allemaal goed.

Ik wil dat programma beschikbaar maken op ons subdomein "tools.afdeling.bedrijf.com/app2/" (app1 is al in gebruik en werkt prima)

Hiervoor heb ik in Nginx bij de vhost config dus een nieuwe location aangemaakt:
code:
1 2 3 location /app2 { proxy_pass http://127.0.0.1:881/; }
Nu kan ik de app benaderen via "tools.afdeling.bedrijf.com/app2/" maar gaat er met de code iets fout, namelijk de javascript en images verwijzen naar "tools.afdeling.bedrijf.com/images" in plaats van "tools.afdeling.bedrijf.com/app2/images"

Ik heb al verschillende dingen geprobeerd met rewrites, slashes achter de map naam en proxy_setheaders geprobeerd maar ik begin haast te denken dat nginx dit gewoon niet kan.

Wellicht heeft iemand de gouden tip, na ruim 2 uur googlen en tientallen verschillende configs werkt het nog steeds niet.

Beste antwoord

quote:FiXeR.nl schreef op woensdag 06 januari 2016 @ 09:24:
Dit (python)programma draait in een dockercontainer en is benaderbaar op poort 881.Betekent dat dat die python app als root draait in die docker container? Dat is niet per se een goed idee quote:Nu kan ik de app benaderen via "tools.afdeling.bedrijf.com/app2/" maar gaat er met de code iets fout, namelijk de javascript en images verwijzen naar "tools.afdeling.bedrijf.com/images" in plaats van "tools.afdeling.bedrijf.com/app2/images"Ja, als die webapp absolute paden gebruikt (wat heel gebruikelijk is) voor dat soort dingen dan werkt dat niet;

Een makkelijke oplossing is om een subdomein te gebruiken voor de reverse proxy, zodat die app ook geproxied gewoon in de root van dat domein draait. "app2.tools.afdeling.bedrijf.com" bijvoorbeeld.

Een andere mogelijkheid is om te zorgen dat de applicatie (in docker) zelf ook onder /app2/ werkt. Dus dat je de app rechtstreeks op de docker container ook benadert met docker:881/app2/ . Dan verwijst de app uit zichzelf naar /app2/images/blabla waardoor dit samen werkt met de proxy (mits juist ingesteld, zie Blokker_1999's posts).quote:Wolfboy schreef op woensdag 06 januari 2016 @ 09:44:
Dit kan wel met Nginx, via de nginx_substitutions_filter: https://www.nginx.com/resources/wiki/modules/substitutions/Dat kan echt alleen maar tot hoofdpijn leiden.

Stel, je subst /images/ naar /app2/images/. Als iemand dan een linkje naar google.com/images/bla.jpg opneemt in een comment in die app, dan wordt die link verklooid. Als de app geupdate wordt om ook /images2/ of /scripts/ of /styles/ of wat dan ook te gebruiken, dan werkt dat niet (en voordat je er dan weer achter bent waarom...). Als je / gaat substen dan ontploft dat zodra een slash in een niet-URL context gebruikt wordt (deling in JS bv). Etc, etc.

Serieus, doe het niet.quote:Maar ik zou toch aanraden de configuratie van het Python programma even aan te passen, mits die goed gebouwd is kan je de url zo veranderen.Dat is ook een mogelijkheid. Je verliest dan wel de mogelijkheid de applicatie rechtstreeks te gebruiken (op blabla:881). Al zou je dat kunnen oplossen met een extra reverse proxy in de docker container.quote:Blokker_1999 schreef op woensdag 06 januari 2016 @ 12:24:
Ik moet u toch meedelen dat het hier perfect werkt.Alleen als de app relatieve paden gebruikt, of ook geroot is in /app2/. Beiden zijn volgensmij niet het geval bij de TS

[Python] Websocket server ontvangt data niet correct

13-11-2015 discussie 9
Vandaag en gisteren ben ik in Python aan het prutsen geweest om een simpele server te schrijven welke communicatie mogelijk moet maken tussen webpagina's. Nouja, om precies te zijn moet hij iPads laten communiceren welke mbv Phonegab geschreven worden.

Nu loop ik tegen 2 problemen aan, de Safari browser op de iPad houdt de connectie niet in stand, hij maakt verbinding, ik stuur een (volgens mij) correcte handshake terug en Safari disconnect vervolgens.

De debugconsole van safari maakt verder geen error over dat de handshake verkeerd is dus het lijkt mij dat het correct is wat ik doe. Hieronder de functie die de handshake genereerd:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 def create_handshake_resp( self, handshake): final_line = "" lines = handshake.splitlines() for line in lines: parts = line.partition(": ") if parts[0] == "Sec-WebSocket-Key1": key1 = parts[2] elif parts[0] == "Sec-WebSocket-Key2": key2 = parts[2] elif parts[0] == "Host": host = parts[2] elif parts[0] == "Origin": origin = parts[2] final_line = line spaces1 = key1.count(" ") spaces2 = key2.count(" ") num1 = int("".join([c for c in key1 if c.isdigit()])) / spaces1 num2 = int("".join([c for c in key2 if c.isdigit()])) / spaces2 token = hashlib.md5(struct.pack('>II8s', num1, num2, final_line)).digest() return ( "HTTP/1.1 101 WebSocket Protocol Handshake\r\n" "Upgrade: WebSocket\r\n" "Connection: Upgrade\r\n" "Sec-WebSocket-Origin: %s\r\n" "Sec-WebSocket-Location: ws://%s/\r\n" "\r\n" "%s") % ( origin, host, token)
Chrome heeft WEL de laatste implementatie van websockets dus die gebruikt een andere functie voor de handshake, mischien werkt hij daarom wel in Chrome, maar ik weet dus niet of het aan mijn handshake ligt. Maar in de Chrome implementatie is het hele algoritme wat ik heb nog maar slechts 2 regels...

Het 2e probleem wat ik heb is dat de data niet correct aankomt. De headers tijdens de handshake zijn wel in echte tekst, maar zodra de verbinding tot stand is gebracht (nu in Chrome want die disconnect niet) dan ziet de data er zo uit:

� �|DE]

Tjah, wat moet ik hier dan mee. Allemaal rare tekens, alsof hij binaire data ontvangt ofzo?
En helaas lukt het me niet om er achter te komen waar dit probleem dan ligt. Ik heb al geprobeerd om de data te decoden in utf-8 formaat maar helaas mocht dat niet baten.
Dit is de functie die inkomende berichten ophaalt:
code:
1 2 3 4 def recv_data(self, client, count): data = client.recv(count) return data #return data.decode('utf-8', 'ignore')
Mijn gevoel zegt dat dit gewoon moet werken... Zijn er toevallig meer mensen die wel eens een websocket server hebben gebouwd? Want ik begrijp helemaal niets van dit gedrag van de socketserver. Ik heb voorbeelden bekeken op het internet maar ik lijk het toch niet anders te doen dan andere mensen.

Als ik nou zou weten wat er dan precies fout gaat kan ik het oplossen, ik hoop dat iemand mij daar mee kan helpen. :-)

Mail via Python-script: afzender niet te wijzigen

17-10-2015 discussie 6
Ik heb een mailscriptje in mekaar gezet (Python noob). Uiteindelijk komt het op m'n server te draaien waar het HTML-invoer moet afvangen, maar ik wil eerst zeker zijn dat het Łberhaupt werkt. Voor het gemak laat ik het script mails sturen via mijn Gmail-account naar de bestemmeling.

Op de server draait een website, en Postfix. Mails gericht aan dat domein worden afgevangen door Postfix en (voorlopig, testfase) naar mijn eigen Gmail-adres gestuurd. Eens alles werkt zal het nog steeds naar Gmail worden gestuurd, maar dan van de eigenaar van de site.

Hoe kan ik de afzender 'spoofen'? Het is de bedoeling dat de website-eigenaar het adres te zien krijgt van de persoon die hem gemaild heeft; niet van mijn mailaccount (waar Postfix 'm naar forward). Ik krijg dit met geen stokken aangepast.

Hieronder het script.
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #!/usr/bin/env python # Import what we need. MIMEText should do just fine. import smtplib from email.mime.text import MIMEText # Create the container msg = MIMEText('Dit is een testmail. Waarom stuurt Google hem niet door??') msg['Subject'] = 'Mail via de website' msg['From'] = 'adres@randomwebsite' # Wat ik er ook van maak, het blijft mijn Gmail-adres tonen in de ontvangen mail. msg['To'] = 'bestemmeling@eigensite' msg.preamble = 'Mail via de website' # Authentication smtpserver = 'smtp.gmail.com' AUTHREQUIRED = 1 smtpuser = 'xx.xx@gmail.com' smtppass = 'blabla' # Send the e-mail mailServer = smtplib.SMTP('smtp.gmail.com',587) mailServer.ehlo() mailServer.starttls() mailServer.ehlo() mailServer.login(smtpuser, smtppass) mailServer.sendmail('adres@randomwebsite','bestemmeling@eigensite',msg.as_string()) mailServer.close()

Python3: IndexError: list index out of range

27-07-2015 discussie 10
Ik heb een python script gemaakt om de gegevens uit een csv bestand te verwerken:
Python: aanmaningen
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 __author__ = 'Bart' import csv f = open('H:/aanmaningen.chr', 'r') reader = csv.reader(f, delimiter=';') def read_cell(x, y): y_count = 0 for n in reader: if y_count == y: cell = n[x] print(cell + " (cell)") return cell y_count += 1 def read(): for i, row in enumerate(reader): i11 = int(i) + 11 i4 = int(i) - 4 i3 = int(i) - 3 i2 = int(i) - 2 iplus1 = int(i) + 1 imin1 = int(i) - 1 if len(row) == 82: if read_cell(72, i) == 'Totaal' and read_cell(74, i) != read_cell(74, i11): ernst = read_cell(3, i) debnr = read_cell(28, imin1) naam = read_cell(0, i4) straat = read_cell(0, i2) plaats = read_cell(0, imin1) kvk = read_cell(46, iplus1) iban = read_cell(73, iplus1) bic = read_cell(67, iplus1) print(straat) else: print('else') return def write(ernst, vve, adminnr, debnr, naam, straat, plaats, totaal, kvk, iban, bic): return read() f.close()
maar ik krijg de volgende error:

C:\Python34\python.exe C:/Users/Bart/PycharmProjects/Aanmaningen/aanmaningen.py Traceback (most recent call last): File "C:/Users/Bart/PycharmProjects/Aanmaningen/aanmaningen.py", line 45, in <module> read() File "C:/Users/Bart/PycharmProjects/Aanmaningen/aanmaningen.py", line 31, in read straat = read_cell(0, i2) File "C:/Users/Bart/PycharmProjects/Aanmaningen/aanmaningen.py", line 13, in read_cell cell = n[x] IndexError: list index out of range Process finished with exit code 1

En ik heb geen idee wat er aan de hand is...

[Python] Waarde vinden in nested list

22-07-2015 discussie 14
Ik ben bezig met Python te leren en loop tegen iets aan wat ik niet goed kan oplossen en heb het gevoel dat ik veel te moeilijk denk. Ik heb een nested list:
code:
1 l = [[1, "Frits", 3], [2, "Dirk", 6], [3, "Jan", 30]]
Nu wil ik een nieuw element aan deze list toevoegen, maar alleen indien de naam nog niet voorkomt in de list. Zoals je ziet staat de naam op iedere 2e positie van ieder element. Stel dat de list geen nested list was maar gewoon een simpele list:
code:
1 l = ["Frits", "Dirk", "Jan"]
Kan ik simpelweg het volgende doen:
code:
1 2 3 new_name = "Peter" if new_name not in l: l.append(new_name)
Ik heb nu het volgende wat wel werkt, maar ik denk dat dit "pythonesker" kan:
code:
1 2 3 4 5 6 7 new_name = "Peter" exists = 0 for i, name, x in l: if name == new_name: exists += 1 if exists == 0: l.append([2, new_name, 7])
Kan dit korter of handiger? Ik unpack nu alles, maar ik weet al zeker dat ik alleen op de 2e positie van ieder element hoef te zoeken.

Cursus Python en Visual Basic for Excel

08-06-2015 discussie 5
Als chemisch technoloog wil ik mij gaan onderscheiden in mijn vakgebied door een programmeer taal te leren. De twee talen die ik mijzelf eigen wil gaan maken zijn Python en VBA (Excel). Python omdat het een relatief makkelijke taal is en deze een aantal open source pakketten beschikbaar heeft zoal numPy die erg bruikbaar zijn. Een cursus om de syntax te leren heb ik gevolgd via CodeCademy en hoop binnenkort te beginnen aan een cursus van MIT via Edx om het wat beter onder de knie te krijgen.
Visual Basic wil ik gaan leren omdat Excel nu eenmaal een gemeengoed is in deze industrie. Er bestaan ontzettend veel Excel sheets vol formules en macro's en het is handig als ik deze kan lezen/aanpassen/optimaliseren.

Ondanks dat ik de syntax van Python begrijp en ook wel wat kan schrijven in VBA/Excel wil ik mijzelf hierin ontwikkelen. Daarom ben ik benieuwd of er cursussen/opleidingen zijn die ik kan volgen, het liefst met een praktische toepassing. Het uiteindelijke doel is om simulaties te maken over bijvoorbeeld een reactie, het aanmaken van databases en hier allerlei gegevens in wegschrijven/opzoeken en de interactie met Excel sheets(bijvoorbeeld een berekening uitvoeren via Python en deze wegschrijven in Excel.)

Zelfstudie boeken is niet direct waar ik naar op zoek ben maar een goede aanbeveling is natuurlijk welkom.

Verwachting daling in temperatuur berekenen (regressie?)

02-06-2015 discussie 11
Ik wil graag de verwachtte daling in temperatuur (per minuut) berekenen.
Dit probeer ik te doen met Python.

Ik meet elke minuut de huidige temperatuur, en dit sla ik op in een list. Ik houd op dit moment een periode van het laatste uur bij.

Aan de hand daarvan wil ik graag berekenen wat de verwachtte temperatuursdaling/stijging per minuut voor de komende tijd is.

Hoe kan ik dit het beste doen. Via lineaire regressie?

Python: hoog CPU verbruik Scrapy

21-05-2015 discussie 0
Onze server waar alle spiders op draaien, verbruikt behoorlijk wat CPU zodra de spiders uitgevoerd worden: 50% minimaal en vaak tegen de 100%.

Ik heb al diverse methodes geprobeerd om het CPU verbruik omlaag te brengen:
- sleep(0.1) toevoegen aan diverse Pipelines
- Pipelines uitschakelen
- gebruik maken van job persistance (mbv de JOBDIR parameter een map toewijzen waar tijdelijke data kan worden opgeslagen in plaats van deze te bewaren in het geheugen).
- max aantal taken per CPU omlaag brengen mbv hieronder getoonde settings.

scrapy.cfg:
Python:
1 2 3 [scrapyd] max_proc = 0 max_proc_per_cpu = 2
Ze hebben geen van allen geholpen. Dit zijn de stats zodra ik een spider uitvoer:
Bash Session:
1 2 3 4 5 6 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3221 scrapy 20 0 836724 75568 8432 R 40.5 7.4 1:04.31 python 3231 scrapy 20 0 836724 75568 8432 S 1.0 7.4 0:01.40 python 3234 scrapy 20 0 836724 75568 8432 S 1.0 7.4 0:01.42 python 3235 scrapy 20 0 836724 75568 8432 S 1.0 7.4 0:01.44 python 3228 scrapy 20 0 836724 75568 8432 S 0.7 7.4 0:01.43 python
Het is dus wel echt scrapy die het CPU opslurpt. Maar zelfs in de trackref functionaliteit van scrapy (http://doc.scrapy.org/en/...emory-leaks-with-trackref) zie ik geen vreemde dingen. Het aantal objecten loopt namelijk steeds weer wat terug, en niet aanzienlijk hoog op.

Iemand nog ideeŽn? Het valt me wel op wanneer ik sleep(0.1) toevoeg aan de Pipelines, ik geen korte pieken meer zie in de CPU grafieken. In plaats daarvan blijft het CPU verbruik op 50% hangen voor een aantal minuten. Omdat het proces nu natuurlijk langer duurt, maar het lijkt er dus op dat er toch iets niet helemaal lekker zit.

Zodra er meerdere spiders tegelijkertijd draaien, wil het CPU verbruik weleens oplopen tot 70%, of zelfs 100% cpu.

EDIT:
Met de variable `CONCURRENT_REQUESTS = 1` blijft die netjes op max 40%, als ik ťťn spider uitvoer. Maar lager dan 40% CPU verbruik is me nog niet gelukt. Ik heb geprobeerd elke extension/pipeline/middleware uit te schakelen, maar dat hielp ook niets. Ik heb dit probleem even bij de makers gedropt, wellicht dat zij nog goede ideeŽn hebben.

[Python] Framework en Database op Raspberry Pi

17-05-2015 discussie 16
Ik wil graag een python applicatie laten draaien op een RPi. Hiervoor heb ik onder anderen een database nodig.

Mijn eigen ervaring met SQLite3 is goed, maar ik weet niet in hoeverre het geschikt is voor de applicatie zelf.

Nu heb ik wel wat onderzocht, maar niet direct ervaringen kunnen vinden van hoe het een en ander zich gedraagt qua performance.

Dus, hierbij mijn vraag, wat is een geschikt lichtgewicht framework dat ik kan gebruiken op de RPi? Django lijkt mij overkill, volgens mij moet het kleiner kunnen (Misschien zelfs zonder framework?), maar ik heb er domweg de kennis niet voor en de reviews en adviezen op o.a. StackOvervlow etc. zijn nogal wisselend.
Ik zat te denken aan Flask, maar daar heb ik dan weer 0 ervaring mee.

Daarnaast twijfel ik tussen SQLite3 en PostgreSQL. Postgres is natuurlijk technisch gewoon beter, maar een stuk zwaarder op het systeem. Helemaal op een RPi.

EC2: Een python script mbv Amazon autoscale

10-05-2015 discussie 0
Heeft iemand ervaring met autoscale op Amazon? Ik wil een python script draaien op Amazon. Dit python script verwerkt de documenten uit een Amazon queue (SQS). Het python script wat uitgevoerd moet worden, dient eerst een classificeerder te downloaden van een aparte server (dit is een .pickle bestand). Deze classificeerder kan vervolgens gebruikt worden om de documenten te verwerken uit het SQS bestand. Deze classificeerder wordt meerdere keren per dag bijgewerkt.
Afhankelijk van de hoeveelheid documenten in de SQS wil ik de EC2 opschalen, of juist naar beneden, of misschien wel helemaal uitschakelen (zodra de SQS leeg is).

Ik heb gevonden hoe ik met de boto library een instance kan starten en een script mee kan sturen dmv de user_data parameter (http://boto.readthedocs.org/en/latest/ec2_tut.html). Maar autoscale lijkt anders te werken: http://boto.readthedocs.org/en/latest/autoscale_tut.html.
Ik kan niet echt duidelijkheid vinden over hoe zo'n autoscale groep nou daadwerkelijk werkt.

Dien ik instances toe te voegen aan de autoscale group die allen het python script runnen op het moment dat deze wordt opgestart, en worden deze instances ingeschakeld op het moment dat ik de autoscale groep opschaal?

EDIT:
Al gefixt. Met behulp van een alarm houdt Amazon in de gate of er extra instances opgestart moeten worden. S3 gebruik ik voor het opslaan van de classificeerder en de AMI (welke door iedere instance gebruikt wordt) richt ik zo in dat die bij opstarten eerst het bestand downloadt en vervolgens begint met classificeren.

[Python] Realtime informatie uit Google Chrome?

10-05-2015 discussie 10
Beste Tweakers,

Na veel zoeken kom ik er niet uit hoe ik dit handig kan aanpakken. De casus is als volgt: ik wil een taalgebruikfilter voor Netflix bouwen. Ik heb al zoiets gemaakt wat werkt voor VLC in Python. Dit door uit de ingebouwde webserver van VLC de huidige playback time uit te lezen, en doordat ik met de ondertiteling weet wat er gezegd wordt het geluid op het juiste moment even te muten.

Nu wil ik hetzelfde doen voor Netflix, maar dan moet ik wel de huidige afspeeltijd hebben. Netflix in de browser is HTML5, dus het lijkt me dat het mogelijk moet zijn om het HTML-element met de tijd te extraheren. Alleen zijn alle oplossingen om dit programmatisch te doen erop gericht om dit op de achtergrond te doen met bv een HTTP-request, en is hier juist essentieel dat het element wordt uitgelezen uit de huidige browserwindow. Een GUI-automatiseringstaal is niet geschikt omdat de tijd niet steeds zichtbaar in beeld is (maar wel als HTML element aanwezig). Het is al mogelijk met een extensie om de ondertiteling te vervangen door je eigen bestand, dus dat probleem is al opgelost.

Waar ik aan dacht was om een Chrome extensie te maken die de informatie uitleest en vervolgens als webserver 'broadcast', die ik dan door mijn op de achtergrond draaiende Python scriptje kan laten uitlezen. Maar da's allemaal erg omslachtig en lastig. Wat zou een goede manier zijn om dit wel te laten werken?

Alvast bedankt voor de hulp!

van webinterface naar raspberry en verder

30-04-2015 discussie 3
Beste Tweakers,

Voor een project wil ik een via 1 webinterface, waar ik een form heb met wat inputs, een paar arduino aanspreken. De communicatie tussen de arduino en de server is het probleem niet.
Het probleem is dat de web interface een reeks get commandos ontvangt van de webinterface. Deze get commandos moeten dan verwerkt worden door een programma/script, die vervolgens de arduino's aanspreekt.

Ik had eigenlijk wel verwacht dat half het internet vol stond met soort gelijke projecten, maar dat val vies tegen.

Ik zou op zich zelf wel een stukje c code kunnen schrijven die als het ware apache vervangt, die afhankelijk wat voor get commando er binnen komt, of een html pagina naar de client stuurt, of de arduino's aanspreekt.
Echt lijkt het mij verre van ideaal, om in hardcore c een webinterface te gaan schrijven.

Hebben jullie misschien suggesties hoe ik dit zou kunnen aanpakken?

Met vriendelijke groet,

Flammert

Ps: er word gewoon gebruik gemaakt van linux (natuurlijk)

[python] requests webpagina met symbolen in http

26-02-2015 discussie 6
Dag iedereen,

Ik probeer informatie op te halen via requests van deze link:
http://stockscreener.uk.r...&OriginalCurrency=GBP
Het leek mij heel eenvoudig maar toch lijk ik er maar niet in te slagen.

Het is een link die gecreeerd wordt door een webformulier.
Ik kan die link zonder problemen plakken in firefox en krijg de gewenste pagina, met python lukt mij dit niet.

Ik heb momenteel dit:


import requests
from bs4 import BeautifulSoup

page=requests.post('http://http://stockscreener.uk.reuters.com/Stock/UK/ResultsTable?returnChoice=&page=2&sortBy=RCCMultexCompanyName&sortDir=A&quickscreen=gaarp&criteria=%5B%22StockUniverse%22%2C%22PriceEarnings%22%2C%22EPSGrowthRate%22%2C%22Region%22%2C%22SectorAndIndustry%22%2C%22PEGRatio%22%5D&Currency=GBP&PEGRatio={%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}&SectorAndIndustry={%22industries%22%3A%5B%5D}&Region={%22countries%22%3A%5B%5D}&EPSGrowthRate={%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}&PriceEarnings={%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}&StockUniverse={%22button_inputs%22%3A%5B%22LIKE|United%2BKingdom%22%2C%22NOTLIKE|United%2BKingdom%22%5D}&criteriaSession={%22StockUniverse%22%3A{%22button_inputs%22%3A%5B%22LIKE|United%2BKingdom%22%2C%22NOTLIKE|United%2BKingdom%22%5D}%2C%22PriceEarnings%22%3A{%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}%2C%22EPSGrowthRate%22%3A{%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}%2C%22Region%22%3A{%22countries%22%3A%5B%5D}%2C%22SectorAndIndustry%22%3A{%22industries%22%3A%5B%5D}%2C%22PEGRatio%22%3A{%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}%2C%22Currency%22%3A%22GBP%22}&OriginalCurrency=GBP')

soup=BeautifulSoup(page.text)
print(soup)


Mijn programma doet alles correct (geen foutmeldingen) maar ik kom op een verkeerde pagina terecht (website die zegt dat de pagina niet kon gevonden worden).

Ik heb gemerkt dat er een verschil is tussen de link die ik zie in firefox en de link die ik uiteindelijk plak in python. Blijkbaar worden een aantal karakters vervangen (zoals bv: [ ] " ).
Ik heb deze ook al proberen te vervangen en zo de html door te sturen maar dat lijkt ook niet te helpen.


import requests
from bs4 import BeautifulSoup

page=requests.post('http://stockscreener.uk.reuters.com/Stock/UK/ResultsTable?returnChoice=&page=100&sortBy=RCCMultexCompanyName&sortDir=A&quickscreen=gaarp&criteria=["StockUniverse"%2C"PriceEarnings"%2C"EPSGrowthRate"%2C"Region"%2C"SectorAndIndustry"%2C"PEGRatio"]&Currency=GBP&PEGRatio={"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}&SectorAndIndustry={"industries"%3A[]}&Region={"countries"%3A[]}&EPSGrowthRate={"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}&PriceEarnings={"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}&StockUniverse={"button_inputs"%3A["LIKE|United%2BKingdom"%2C"NOTLIKE|United%2BKingdom"]}&criteriaSession={"StockUniverse"%3A{"button_inputs"%3A["LIKE|United%2BKingdom"%2C"NOTLIKE|United%2BKingdom"]}%2C"PriceEarnings"%3A{"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}%2C"EPSGrowthRate"%3A{"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}%2C"Region"%3A{"countries"%3A[]}%2C"SectorAndIndustry"%3A{"industries"%3A[]}%2C"PEGRatio"%3A{"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}%2C"Currency"%3A"GBP"}&OriginalCurrency=GBP')

soup=BeautifulSoup(page.text)
print(soup)





Iemand een idee?

[python][requests] Formulier invullen en resultaat ontvangen

10-02-2015 discussie 2
Dag iedereen,

Ik ben momenteel python aan het leren maar zit momenteel volledig vast.

Ik tracht een formulier in te vullen en de resultaten naar mijn computer te schrijven (link)

Ik slaag er wel in om de gegevens door te sturen maar niet om de respons te ontvangen?
Ik krijg nu als resultaat enkel het ingevulde formulier.

Iemand een idee waar mijn fout ligt?

Dit is mijn voorlopige code:

import requests
from bs4 import BeautifulSoup
with requests.Session() as c:
page=c.post('http://stockscreener.uk.reuters.com/Stock/UK/Index?quickscreen=gaarp', data=dict(quickscreen='gaarp',criteria='["StockUniverse","PriceEarnings","EPSGrowthRate","Region","SectorAndIndustry","PEGRatio"]',Currency='GBP',PEGRatio='{"view":"range","button_inputs":[],"range_inputs":"LSS|1"}',SectorAndIndustry='{"industries":[]}',Region='{"countries":["GB"]}',EPSGrowthRate='{"view":"range","button_inputs":[],"range_inputs":"GTR|15"}',PriceEarnings='{"view":"range","button_inputs":[],"range_inputs":"GEQ|0|LEQ|15"}',StockUniverse='{"button_inputs":["LIKE|United+Kingdom","NOTLIKE|United+Kingdom"]}',criteriaSession='{"StockUniverse":{"button_inputs":["LIKE|United+Kingdom","NOTLIKE|United+Kingdom"]},"PriceEarnings":{"view":"range","button_inputs":[],"range_inputs":"GEQ|0|LEQ|15"},"EPSGrowthRate":{"view":"range","button_inputs":[],"range_inputs":"GTR|15"},"Region":{"countries":["GB"]},"SectorAndIndustry":{"industries":[]},"PEGRatio":{"view":"range","button_inputs":[],"range_inputs":"LSS|1"},"Currency":"GBP"}'))

soup=BeautifulSoup(page.text)
print(soup)

Hoe 5 bytes in een leesbare string zetten?

22-01-2015 discussie 6
Dag mede-Tweakers,

Voor een projectje heb ik een vraag. Ik heb de volgende RFID reader (http://www.produktinfo.co...FID_ANTENNE_C_CONTROL.pdf) aangesloten op mijn raspberrys seriele pinnetje. Nu wil ik in python de 5-byte string die ik binnenkrijg omzetten in een door mensen leesbare string (die ik vervolgens wil gaan vergelijken met een mysql database maar dat is voor later)

Iemand ervaring of tips?

Mijn eerste programmeertaal, Python versus Go

12-01-2015 discussie 29
Beste Tweakers,

Allereerst, ik weet dat vragen als “welke taal moet ik leren” niet op prijs worden gesteld. Ik ben dan ook niet op zoek naar 42, ik ben op zoek naar ervaring en wat inzicht om mijn keuze meer grond te geven.

Mijn achtergrond is html/css welke ik goed beheers, ik wilde altijd met php aan de slag maar ik kan er niet mee overweg. Ik vind php lelijk, onhandig, obscuur. JavaScript aan de andere kant vind ik geweldig, helaas ben ik er veel te laat mee begonnen maar het voelt meer als een handschoen. Het is bovenal een gevoelskwestie en php/JS is voor mij het verschil tussen kill me now en awwww yeah.

Als server-side taal trekt JS me dan weer niet zo, te veel package-management, te veel dependancies. Ik ben me al een tijdje aan het oriŽnteren door opties te bekijken opiniestukken te lezen, code in te zien en mezelf af te vragen wat ik zoek in een taal.

Ik begin met wat ik zoek
- Mooie syntax
- Performant
- Dwingt tot zeker hoogte nette code af

Waar ik op uit ben gekomen zijn eigenlijk 2 totaal verschillende paden. Het gaat om Python versus Go lang. De verschillen zijn aanzienlijk:

Python
- Gevestigd
- GeÔnterpreteerd
- Uitgebreid
- Ongeveer even snel als php

Go lang
- Relatief nieuw
- Gecompileerd
- Minimalistisch
- Snel

Wat ze beide gemeen hebben is dat ze volgens een bepaalde (stricte) filosofie werken, dit vind ik prettig omdat het zorgt voor consistentie. Wat ze ook gemeen hebben is dat ik de taal persoonlijk prettig vind om te lezen, een stuk schoner dan php, meer zoals ik JS ervaar. Ze kunnen ook beide toegepast worden in het applicatie-domein.

In principe lijken beide me een prettig pad om te betreden, ik neig naar Python vanwege de grotere community, meer documentatie voor obscure use-cases, ongetwijfeld meer werk-aanbod. Go lang spreekt me aan vanwege de frisse aanpak, een kleine set tools die (vanwege de compilatie) erg snel is, het is gemaakt voor meerdere threads en in die zin meer een node.js alternatief. Ik weet dat het snelheidsvoordeel van Go in deze fase een ver van mijn bed show is en dat er veel meer bij komt kijken dan de runtime. Toch heb ik altijd een bias naar snel, sneller, snelst.

Zijn er mensen die voor dezelfde keus hebben gestaan, of Łberhaupt mensen met ervaring in Go? Deze vraag is ook deels omdat ik in GoT vrijwel niks kan vinden over Go. Dit is in ieder geval hoe ik Python en Go beide als een optie zie.

Aansturing seriele poort vanuit python

29-10-2014 discussie 0
Hallo,

Ik ben bezig met een python programmaatje die een seriele poort aan kan sturen. Ik gebruik hiervoor een Raspberry Pi i.c.m. een Arduino. Op de Raspberry heb ik een webserver draaien die het python scriptje aanroept. Zo kan ik dingen in- en uitschakelen via internet. Op zich werkt het perfect, alleen ik moet de seriele monitor van de Arduino IDE open hebben staan wil het functioneren. Het lijkt erop dat het python script de seriele poort niet opent ofzo, maar ik weet niet waarom. Kan natuurlijk ook iets anders zijn. Hieronder de Python code:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import serial import time import argparse import sys parser = argparse.ArgumentParser() parser.add_argument("run", help ="", type = str) args = parser.parse_args() DEVICE = '/dev/ttyACM0' BAUD = 9600 ser = serial.Serial(DEVICE, BAUD) while 1 : ser.write(args.run) if (ser.read() == "y") : break time.sleep(0.1)
Kan iemand mij misschien vertellen wat hier fout gaat?

icloud api Python

20-10-2014 discussie 1
Beste,

Weet iemand een goede icloud api voor python pypi te liggen?
Heb er 2 getest maar werken niet goed.

Icloud drive is nieuw dus het kan zijn dat ik geen resultaat nog krijg.

Mvg,
Stefan

[python] stiekem toch pointers? (bug, kom er niet uit)

07-09-2014 discussie 11
Beste mensen,

Ik zit met een issue, want ik ben tot de conclusie gekomen dat ik er geen kont meer van snap, hoewel ik toch een tijdje al weer zit te programmeren in Python. En aangezien ik het idee heb dat ik iets heel erg basis fout doe, is dat gevaarlijk voor de rest van mijn brouwsels dus heb ik hulp nodig.

Ik heb een eigen 'class' waarin ik simuleer dat ik een matrix heb. Ofwel het bevat gewoon een lijst met waaden en als cols en rows 8 is en ik een lijst van 64 waarden heb, kan ik dan mooi waarde (2,3) bijvoorbeeld opvragen.
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Mat: def __init__(self, rows, columns): #initialize a 'matrix' if rows <=0 or columns <= 0: raise Exception("Cannot use 0 or negative as value for rows/columns") self.rows=rows self.columns=columns self.data=[] def getpx(self,row,column): #return a certain pixel if len(self.data) == 0: raise Exception("There is no data in the current Matrix") if row <=0 or column <= 0: raise Exception("Cannot use 0 or negative as value for rows/columns") return self.data[(row-1)*self.columns+(column-1)]
Nu doe ik het volgende (versimpeld), om het gemiddelde van de laagste 3 waarden te verkrijgen
code:
1 2 3 4 testmatrix = Mat(8,8,lijstvan64waarden) #initialiseren datalijst = testmatrix.data sortlijst=datalijst.sort() avgmindata=sum(sortlijst[0:3])/3 #laagste 3 waarden optellen en delen door 3
Dat gaat allemaal prima. Denk je. Alleen nu blijkt dat de data in testmatrix ook gewoon wordt gesorteerd. Het lijkt dus alsof ipv de data naar datalijst wordt gekopieerd er in werkelijkheid een referentie wordt gekopieerd.

Ook als ik het via een omslachtige, gare manier doe gaat het fout
code:
1 2 3 4 5 sortmat=Mat(8,8) gridDataAvgMat.copyData(sortmat) sortlijst=sortmat.data sortlijst.sort() avgmindata=sum(sortlijst[0:3])/3
idee was ik doe het wel via een andere 'matrix', maar copydata doet in feite:
code:
1 2 3 4 5 6 7 8 9 def copyData(self,targetmatrix): #Function to copy all data from one Mat to another if not isinstance(targetmatrix, Mat): raise Exception("Trying to copy data from Mat object to non-Mat object") if targetmatrix.rows != self.rows or targetmatrix.columns != self.columns: raise Exception("Trying to copy data from Mat object to another Mat object while columns / rows do not match!") if len(self.data) == 0: raise Exception("There is no data in the current Matrix to copy") targetmatrix.data=self.data
targetmatrix.data = self.data geeft dus wellicht ook gewoon een referentie door?

Los van het feit dat er allerlei andere handige dingen gebruikt kunnen worden voor het achterliggende doel, hoe voorkom ik dat de rest meesorteert?

Kan Python voor windows 8 niet installeren

03-09-2014 discussie 4
Wanneer ik de setup van python 2.7.6 draai dan krijg ik wanneer hij de componenten gaat registreren de melding "sleutel is niet geldig voor gebruik in de opgegeven status".

Ik kan de setup niet starten als administrator omdat die optie bij rechtsklikken niet verschijnt, bij andere setup bestanden overigens wel.

Op het web kan ik in relatie met python niets vinden hierover, wel wanneer het over spotnet gaat.

Een setup log heb ik beschikbaar.

[Python/CherryPy]

05-02-2014 discussie 1
Beste mede-tweakers!

Ik ben tegen een probleem aangelopen met cherrypy voor python. Als ik cherry wil importeren vanuit een lib folder dan werkt cherry niet correct (zie test2.py) Echter als ik cherrypy importeer vanuit hetzelfde niveau als de executable (test.py) dan werkt het correct. Zou iemand mij dit kunnen uitleggen waarom het niet werkt? In de lib folder is een lege __init__.py aanwezig.

test.py
code:
1 2 3 4 5 6 7 8 import cherrypy options_dict = { 'log.screen': True, 'server.socket_port': 8797, } cherrypy.config.update(options_dict) cherrypy.server.start() cherrypy.engine.exit()
Output test.py
code:
1 2 3 4 5 6 7 8 9 C:\Users\Bob\Programming\Hoarder>python test.py [05/Feb/2014:16:54:09] ENGINE Serving on 127.0.0.1:8797 [05/Feb/2014:16:54:09] ENGINE Bus STOPPING [05/Feb/2014:16:54:09] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 8797)) shut down [05/Feb/2014:16:54:09] ENGINE No thread running for None. [05/Feb/2014:16:54:09] ENGINE No thread running for None. [05/Feb/2014:16:54:09] ENGINE Bus STOPPED [05/Feb/2014:16:54:09] ENGINE Bus EXITING [05/Feb/2014:16:54:09] ENGINE Bus EXITED
test2.py
code:
1 2 3 4 5 6 7 8 import libs.cherrypy as cherrypy options_dict = { 'log.screen': True, 'server.socket_port': 8797, } cherrypy.config.update(options_dict) cherrypy.server.start() cherrypy.engine.exit()
Output test2.py
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 C:\Users\Bob\Programming\Hoarder>python test2.py [05/Feb/2014:16:55:18] ENGINE Serving on 127.0.0.1:8080 [05/Feb/2014:16:55:18] ENGINE Serving on 127.0.0.1:8080 [05/Feb/2014:16:55:18] ENGINE Bus STOPPING [05/Feb/2014:16:55:18] ENGINE Bus STOPPING [05/Feb/2014:16:55:18] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 8080)) shut down [05/Feb/2014:16:55:18] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 8080)) shut down [05/Feb/2014:16:55:18] ENGINE HTTP Server None already shut down [05/Feb/2014:16:55:18] ENGINE HTTP Server None already shut down [05/Feb/2014:16:55:18] ENGINE No thread running for None. [05/Feb/2014:16:55:18] ENGINE No thread running for None. [05/Feb/2014:16:55:18] ENGINE No thread running for None. [05/Feb/2014:16:55:18] ENGINE No thread running for None. [05/Feb/2014:16:55:18] ENGINE No thread running for None. [05/Feb/2014:16:55:18] ENGINE No thread running for None. [05/Feb/2014:16:55:18] ENGINE No thread running for None. [05/Feb/2014:16:55:18] ENGINE No thread running for None. [05/Feb/2014:16:55:18] ENGINE Bus STOPPED [05/Feb/2014:16:55:18] ENGINE Bus STOPPED [05/Feb/2014:16:55:18] ENGINE Bus EXITING [05/Feb/2014:16:55:18] ENGINE Bus EXITING [05/Feb/2014:16:55:18] ENGINE Bus EXITED [05/Feb/2014:16:55:18] ENGINE Bus EXITED

[Python] thread.start() blijft hangen

31-10-2013 discussie 3
hallo allemaal,
ik ben bezig met een chatprogramma te maken in python 3 en ik loop tegen het voglende probleem aan.
ik heb een functie in een thread maar de thread.start() functie blocked ipv dat ie de thread start en dan verder gaat. ik had eerst als functie in de thread het volgende:
Python:
1 2 3 4 5 def ServerInput(s,clientname): while True: serverinput = str(s.recv(1024), "utf-8") if clientname not in serverinput and "OK" not in serverinput: print(serverinput)
toen heb ik rondgezocht en bleek dat de s.recv kan blocken. dus toen heb ik het verandert naar dit om het te testen:
Python:
1 2 3 4 5 6 7 def ServerInput(s,clientname): while True: #serverinput = str(s.recv(1024), "utf-8") serverinput = "test" if clientname not in serverinput and "OK" not in serverinput: print(serverinput) time.sleep(1)
en ik krijg vervolgens als output netjes om de seconde een "test" geprint. dus de thread zelf werkt wel. het probleem is alleen dat de code na de thread.start() call niet uitgevoerd wordt
dus ik creeŽr de thread op deze manier:
Python:
1 2 3 4 thread = threading.Thread(target=ServerInput(sock,NAME)) thread.deamon = True thread.start() print("thread started")
maar die "thread started" krijg ik nooit te zien. ik kan op google geen oplossingen hiervoor vinden. wie o wie kan mij hiermee helpen? alvast bedankt!

socket doet rare dingen

31-10-2013 discussie 0
hallo allemaal
ik probeer momenteel een chat programma te maken in python. cruciaal onderdeel is natuurlijk dat de server een bericht dat het ontvangt van een client. daar heb ik de volgende code voor.
bij het connecten met de server (na succesvolle authenticatie)
Python:
1 2 user = [NAME, self.server.socket] #NAME is de naam van de client die deze thread afhandelt users.append(user)
users is dus een lijstje met verbonden users
vervolgens komt er een bericht binnen en moet die naar alle users verstuurd worden, dit stukje probeert dat:
Python:
1 2 3 4 for u in users: if u[0] != NAME: socket = u[1] socket.request.sendall(bytes(self.data, "utf-8"))
het probleem is alleen dat de client die het originele bericht verstuurt heeft vervolgens accuut dropt en dan een oneindige rij aan lege lijnen print als ontvangen bericht.
het gekke is dat als op de server dit for loopje weg haal dit niet voorkomt maar ik heb met debuggen vastgesteld (dmv breakpoints) dat de loop wel gewoon de juiste user selecteer. maar die user ontvangt niks.
ik vermoed dat ik dus niet direct die socket in die thread kan aanroepen maar het terugzenden van de verificatie (op dit moment alleen nog een "OK" ) werkt wel gewoon. kan iemand mij hier mee helpen?
Resultaten per pagina: 25 | 50 | 100


Samsung Galaxy S7 edge Athom Homey Xcom 2 Samsung Galaxy S7 Fallout 4 Apple iPhone 6C Hitman (2016) LG G5

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True