Waar een nieuw gemaakte python module opslaan ?

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • 1993scarlet
  • Registratie: Juni 2020
  • Laatst online: 08-03-2022
Mijn vraag
...Ik heb sinds enkele weken mijn eerste stappen gezet om Python aan te leren. Dat lijkt niet zo eenvoudig voor een leek.Ik heb een in het handboek uitgelegde module pcinput gemaakt en zou die moeten opslaan om nadien aan te roepen. Maar het handboek is ( voor mij tenminste) heel vaag over WAAR die moet opgeslagen worden.("zorg dat hij staat in de folder waar je je programma’s schrijft"). Maar ik heb nog nooit een programma geschreven of opgeslagen. Nu heb ik de gemaakte module in een map Python gezet maar als ik iets uit de module wil aanroepen krijg ik de melding dat de module niet gevonden wordt. ("from pcinput import getInteger - ModuleNotFoundError: No module named 'pcinput'").,
De versie van Phyton die in geInstalleerd heb is de laatste , 3.8.3. , maar als ik op mijn Mac in de terminal met " Python --version" de versie vraag geeft die 2.7.10 weer ( Python zit blijkbaar al standaard in een mac) en nergens in de library is iets over 3.8.3 te vinden dus daar vind ik ook geen aanwijzing naar een opslagmap voor modules..

Relevante software en hardware die ik gebruik:
...Ik gebruik een iMac met macOSSierra 10.12 en de pythonversie is dus 3.8.3. De teksteditor is Idle.

Wat ik al gevonden of geprobeerd heb:
...Zoals hierboven uitgelegd heb ik in de library gezocht , de versie nagezocht , op het internet gezocht naar een uitleg waar je een zellfgemaakte module moet opslaan , maar ik heb niets gevonden.

Kan iemand me een handje helpen ?
Dank bij voorbaat

Alle reacties


Acties:
  • 0 Henk 'm!

  • Crahsystor
  • Registratie: Februari 2009
  • Laatst online: 18:20
Geen idee hoe het zit met macOS en Python specifiek. Maar kun je niet zoeken naar python, gewoon als file? En dan als test daar iets opslaan en kijken of het werkt?

Verder is mijn ervaring dat een goede IDE je erg helpt als je iets probeert te leren. Zowel in de taal als in praktische zaken als dit. Lang leve de help en faq. Ik heb goede ervaringen met IDEA van JerBrains. Voor Python hebben ze PyCharm, ook voor mac. https://www.jetbrains.com/pycharm/download/#section=mac

Addicted to silent computing


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Als je module in een enkel bestand staat (pcinput.py) moet dat bestand in dezelfde map staan als het bestand waarin je "from pcinput import getInteger" doet, of in een willekeurige map van je path:
code:
1
2
import sys
print(sys.path)

Acties:
  • 0 Henk 'm!

  • 1993scarlet
  • Registratie: Juni 2020
  • Laatst online: 08-03-2022
Bedankt voor jullie antwoord.
Ik heb alles staan in een map Python met submap Modules.
Ik heb ook al in diverse sites gezocht met faq's e.d. maar niets gevonden waar die map zou kunnen staan.

Ik heb dus ook de 2 bestanden (pcinput) en bestand (getInteger) waarin "from pcinput import getInteger" opgeroepen wordt in dezelfde map staan ( modules , submap van map Python). Het blijft echter dezelfde melding geven dat er geen module met die naam bestaat.
Wat bedoel je met die import sys - print (sys.path) ? Is dat een bestand dat ik met Python moet maken ?Wat doet dat ?

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Als je het in een submap 'Modules' zet, staat het bestand niet in dezelfde map als je code.

Die code toont het pad waarin Python zoekt naar modules. Er zijn andere manieren om het pad tevoorschijn te toveren, maar deze code werkt in elk OS. Je kunt de map Modules ook aan het pad toevoegen als je graag die map wilt blijven gebruiken.

Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 10:27
Er zijn een aantal manieren waarop python een module kan vinden, daar zou ik nog maar eens wat over gaan nalezen.
Voor nu is de simpelste oplossing het path toe te voegen aan het import statement zodat python hem weet te vinden.

Dus niet:
from pcinput import getInteger
maar:
from Module.pcinput import getInteger

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • 0 Henk 'm!

  • 1993scarlet
  • Registratie: Juni 2020
  • Laatst online: 08-03-2022
Goeiemorgen allemaal.

Ik begrijp het blijkbaar nog niet goed. GlowMouse , wat bedoel je met "De code" ? Is dat niet het bestand dat ik gemaakt hebt en dat als module moet dienen (pcinput)? Het bestand om die module op te roepen is het bestand "getInteger". Ze staan toch allebei in dezelfde map "Modules" ?En aan welk "pad" moet ik die map modules toevoegen ?

Ben(V) - ook dat helpt niet : reactie : from module.pcinput import getInteger
ModuleNotFoundError: No module named 'module'

Acties:
  • +1 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:37

Creepy

Tactical Espionage Splatterer

Misschien een goed idee om eerst eens een klein Python programma te schrijven ipv met een module te beginnen? Ik denk dat dat je inzicht gaat geven in wat issues waar je nu tegenaanloopt.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • 1993scarlet
  • Registratie: Juni 2020
  • Laatst online: 08-03-2022
In de handleiding ben ik aan het hoofdstuk om die module te maken maar de uitleg waar de module te plaatsen is zo vaag dat dit niet lukt en daarom wordt ze ook niet gevonden waarschijnlijk. Modules als "math" of een onderdeel daarvan oproepen bv. from math import sqrt is duidelijk maar die modules zitten al in python. ( waar ?) De werkopgave was om de module pcinput over te tikken uit het boek waarin getInteger, getfload, getString enz. en daar dan ééntje van op te roepen. Maar dat oproepen lukt dus niet omdat de module blijkbaar niet gevonden wordt en dus vermoedelijk niet op zijn plaats staat.
oproep =
from pcinput import getInteger

num1 = getInteger( "Geef een geheel getal: " )
num2 = getInteger( "Geef een ander geheel getal: " )

print( num1, "+", num2, "=", num1 + num2 )

antwoord =
Traceback (most recent call last):
File "/Users/crash/Documents/Python/Opgave.5.3.3.1.getInteger.py", line 4, in <module>
from pcinput import getInteger
ModuleNotFoundError: No module named 'pcinput'

Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 10:27
Python is case sensitive, dus als je folder "Module" heet dan werkt "module.pcinput" niet maar moet je zoals ik schreef "Module.pcinput" gebruiken.

Ander oplossingen zijn:
  • Zet die pcinput.py in dezelfde folder als de aanroepende code
  • Plaats een leeg bestand met de naam __init__.py in de folder waar je code staat
  • Voeg de folder toe aan het searchpath in met sys.path.append(<model path>)
  • Voeg de locatie van de module toe aan de environment variable "PYTHONPATH"
en zo zijn er nog wel een paar meer oplossingen

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • 0 Henk 'm!

  • 1993scarlet
  • Registratie: Juni 2020
  • Laatst online: 08-03-2022
Gelukt,
ik heb met sys.path de juiste locatie kunnen vinden waar pcinput moest komen. Dat was wat verwarrend vermits er 3 libraries zijn die opgegeven worden ( in het systeem , de SSD en het account) . Deze was het :(Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8) Ik heb er een kopietje van het bestand pc input ingezet en nu werkt getInteger.
Bedankt voor jullie hulp.

Acties:
  • +2 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 14:23

DataGhost

iPL dev

En dat is dus fout, met 99,9% zekerheid. Het werkt wel, maar de bedenkers van de opdracht hadden die "oplossing" niet in gedachten. Het is ook niet heel gangbaar om je complete programma als een library te installeren. Ik zou https://docs.python.org/3/tutorial/modules.html eens goed doorlezen, daarin staat precies hoe en wat om het uiteindelijk aan de gang te krijgen zonder dat je dat bestand in een van de library-paths hoeft te zetten. Zeker als je begint is het handig om zaken op de juiste manier aan te leren en dit niet als een foute gewoonte in te laten slijten.

Acties:
  • 0 Henk 'm!

  • 1993scarlet
  • Registratie: Juni 2020
  • Laatst online: 08-03-2022
Dataghost,
heel vriendelijk om me daar op te wijzen. De aanwijzing in de cursus "("zorg dat hij staat in de folder waar je je programma’s schrijft") zegt me niets over "hoe en waar" en het is inderdaad best de dingen te leren hoe ze echt juist moeten. Tot mijn spijt is mijn engels ook niet van de orde om uit de link die je opgeeft te halen hoe en waar ik die module dan wel moet opslaan of wat ik eventueel moet aanpassen in de tekst.
Het is vervelend maar ik ben echt wel een leek en volg gewoon sinds enkele weken die cursushandleiding met de oefeningen die men opgeeft maar het lijkt me soms alsof ik latijn zit te lezen.

Acties:
  • +1 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 14:23

DataGhost

iPL dev

Als je Python bent gaan leren om daar op een gegeven moment wellicht professioneel iets mee te gaan doen kan ik je van harte aanraden om je Engels bij te spijkeren aangezien ongelofelijk veel bronnen nou eenmaal in het Engels zijn, grote delen van de taal en libraries uit het Engels komen en dat over het algemeen ook de voertaal is in foutmeldingen en dergelijke. Er zijn natuurlijk localisaties zodat je meldingen in het Nederlands zijn, maar daarmee ga je weinig vinden online aangezien iedereen die hier ook maar een beetje serieus mee bezig is zorgt dat alles Engels is. Lijkt me geen heel rare suggestie als je toch al een andere "taal" aan het leren bent :)

Ook is het in het dagelijks leven nuttig. Boeken lezen, films kijken, Duolingo e.d. gebruiken en gewoon wat cursussen volgen kunnen je begrip van de taal ontzettend snel opkrikken. Je moet het gewoon heel vaak gebruiken en dat kost tijd en moeite, net als het leren van Python en programmeren in het algemeen. Een goede beheersing van de Engelse taal zal het leren van programmeertalen over het algemeen ook iets vereenvoudigen, omdat je maar met één en niet twee onbekende dingen bezig bent.

Verder niet om je af te kraken, maar begrijpend kunnen lezen is ook erg belangrijk. Ik heb zelf toch al zeker twee decennia programmeerervaring dus voor mij is het direct duidelijk en vind ik het erg lastig me in te leven in hoe en waarom je het niet begrijpt, maar ik kan aan de bewoording in je cursus "zorg dat hij staat in de folder waar je je programma’s schrijft" helaas niet heel veel verduidelijken. Wat daar staat is correct, en iets anders dan wat je hebt gedaan volgens je topicstart.
1993scarlet schreef op woensdag 1 juli 2020 @ 20:41:
Maar ik heb nog nooit een programma geschreven of opgeslagen.
Volgens je latere post heb je dat wel:
1993scarlet schreef op donderdag 2 juli 2020 @ 10:10:
[..]
Traceback (most recent call last):
File "/Users/crash/Documents/Python/Opgave.5.3.3.1.getInteger.py", line 4, in <module>
from pcinput import getInteger
ModuleNotFoundError: No module named 'pcinput'
Dikgedrukt, dat is je programma. Waar zou je dan je module precies neer moeten zetten volgens je cursus?

[ Voor 5% gewijzigd door DataGhost op 02-07-2020 13:28 ]


Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 10:27
1993scarlet schreef op donderdag 2 juli 2020 @ 10:51:
Gelukt,
ik heb met sys.path de juiste locatie kunnen vinden waar pcinput moest komen. Dat was wat verwarrend vermits er 3 libraries zijn die opgegeven worden ( in het systeem , de SSD en het account) . Deze was het :(Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8) Ik heb er een kopietje van het bestand pc input ingezet en nu werkt getInteger.
Bedankt voor jullie hulp.
Ter aanvulling van @DataGhost
Ga nooit maar dan ook nooit eigen modules in de python distributie toevoegen zoals jij gedaan hebt.
Je kunt wel binnen je eigen programma het path naar die module toevoegen met sys.path.append

Verder is het advies van die cursus tamelijk beroerd.
Als je een module maakt ga je die natuurlijk niet in dezelfde folder zetten als je programma, dan kun je hem net zo goed in dat programma opnemen.
Modules maak je om als het ware je eigen library te hebben die je in verschillende programma's kunt hergebruiken, die ga je natuurlijk niet in de folder van een bepaalt programma zetten.

Maar zoals al gezegd zou ik eeest maar eens gaan lezen op welke manieren python import kan werken.

Lees dit eens bijvoorbeeld:
https://chrisyeh96.github...ble%20to%20the%20importer.

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • +1 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 14:23

DataGhost

iPL dev

Ben(V) schreef op donderdag 2 juli 2020 @ 13:39:
[...]

Verder is het advies van die cursus tamelijk beroerd.
Als je een module maakt ga je die natuurlijk niet in dezelfde folder zetten als je programma, dan kun je hem net zo goed in dat programma opnemen.
Modules maak je om als het ware je eigen library te hebben die je in verschillende programma's kunt hergebruiken, die ga je natuurlijk niet in de folder van een bepaalt programma zetten.
Mwah, je kan prima je programma opsplitsen in verschillende modules zonder dat je daar direct een library van hoeft te maken. Sterker nog, dat is behoorlijk common practice, zodat je niet maar 1 gigantisch bestand hebt met daarin al je code, maar alles gesplitst hebt per functionaliteit. Vrijwel elk programma en ook library van in totaal meer dan 100 regels code is opgesplitst in verschillende modules. De cursus probeert TS daar met een simpel en klein programma kennis mee te laten maken. Dus al zou je een dergelijk klein programma in het algemeen niet opsplitsen in modules, is het doel van deze opdracht te leren wat modules zijn en hoe je ze gebruikt, niet om je te leren wanneer je modules niet zou hoeven gebruiken (maar het mag altijd).

Bijvoorbeeld een van de programma's waar ik mee bezig bent heeft aparte modules voor het gebruiken van het configuratiebestand, voor de GUI (een aantal zelfs), voor het praten met een service en voor de verschillende "items" waar het programma mee werkt. Het "hoofd-programma" knoopt ze vervolgens zelf allemaal aan elkaar. Die dingen zijn in principe onafhankelijk van elkaar dus verschillende modules zijn daarbij een prima uitkomst, maar ze zijn specifiek genoeg om volkomen nutteloos te zijn als library. In een VCS is ook het overzicht van je wijzigingen een stuk duidelijker op die manier.

Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 10:27
Verschillende bestanden van een programma is in python termen geen module.
Dat is gewoon een programma bestaande uit verschillende bestanden, die over het algemeen samen in een folder staan.

Maar zoals zoveel in Python is het maar hoe je tegen zulke benamingen aankijkt.

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 14:23

DataGhost

iPL dev

Ben(V) schreef op donderdag 2 juli 2020 @ 13:59:
Verschillende bestanden van een programma is in python termen geen module.
Dat is gewoon een programma bestaande uit verschillende bestanden, die over het algemeen samen in een folder staan.

Maar zoals zoveel in Python is het maar hoe je tegen zulke benamingen aankijkt.
Het staat er toch behoorlijk letterlijk:
As your program gets longer, you may want to split it into several files for easier maintenance. You may also want to use a handy function that you’ve written in several programs without copying its definition into each program.

To support this, Python has a way to put definitions in a file and use them in a script or in an interactive instance of the interpreter. Such a file is called a module; definitions from a module can be imported into other modules or into the main module
En je gebruikt die "verschillende bestanden van je programma" ook op precies dezelfde manier als modules volgens jouw beperktere definitie.

Acties:
  • 0 Henk 'm!

  • 1993scarlet
  • Registratie: Juni 2020
  • Laatst online: 08-03-2022
Dataghost,
Ik heb geen professionele doeleinden met dat leren van Python. Gewoon een kennis die een rekenprobleempje oploste met een pythonprogramma maakte me nieuwsgierig hoe dat systeem in feite werkt dus heb ik op het internet een nederlandstalige gratis cursus gezocht en geprobeerd daar wat uit le leren.
En dan liep ik vast op hetgeen ik in dit topic vroeg.
Ik zit nog steeds vast. Je zegt dat ik eerst zeg "Maar ik heb nog nooit een programma geschreven of opgeslagen.". Dat klopte toen ook want het eerste wat ik wou opslaan was deze "getinteger" en dat mislukte dus. In één van de antwoorden stond dat ik "getInteger moest opslaan in dezelfde map als"pcinput" en rekening houden met hoofdletters. Dat heb ik gedaan maar het werkte niet. Dan stond er ergens iets over import sys enz. en op die plaats vond ik inderdaad meerdere .py bestanden. IK heb er dan een kopietje van mijn bestand bijgezet en dat werkte. Dus dat leek me niet zo gek. Blijkt dus fout denken te zijn. Maar in je reactie zeg je verder : "Dikgedrukt, dat is je programma. Waar zou je dan je module (=pcinput) precies neer moeten zetten volgens je cursus" ? - En "dat" blijft dus de vraag: waar ? want waar die module stond in de map bij "getInteger" werkt het dus niet. Dus waar moet ze dan wel moeten staan als ze niet mag staan waar ik ze nu weggezet heb in de library ?
Ik heb het gevoel dat ik er helemaal niets van begrijp!

Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 14:23

DataGhost

iPL dev

1993scarlet schreef op donderdag 2 juli 2020 @ 14:35:
Ik zit nog steeds van. Je zegt dat ik eerste zeg "Maar ik heb nog nooit een programma geschreven of opgeslagen.". Dat klopte toen ook want het eerste wat ik wou opslaan was deze "getinteger" en dat mistlukte dus.
Nog even de quote erbij dan:
zorg dat hij staat in de folder waar je je programma’s schrijft
Schrijft kan zowel tegenwoordige als toekomstige tijd zijn. Dus ook al heb je nog geen programma geschreven, kan je je module uiteraard ergens opslaan. Dan moet je later het programma dus in dezelfde map zetten als waar je je module hebt neergezet, of je module achteraf verplaatsen naar de map van je programma.
In één van de antwoorden stond dat ik "getInteger moest opslaan in dezelfde map als"pcinput" en rekening houden met hoofdletters. Dat heb ik gedaan maar het werkte niet.
Dan moet je toch echt even het volledige pad (/iets/nogiets/ietsanders/naam.py) van zowel getInteger als pcinput laten zien hier zodat je hopelijk zelf al ziet wat er mis ging, en anders iemand het uit kan leggen. Ik weet nu namelijk niet wat je precies gedaan hebt, wat in je cursus staat klopt namelijk.
Dan stond er ergens iets over import sys enz. en op die plaats vond ik inderdaad meerdere .py bestanden. IK heb er dan een kopietje van mijn bestand bijgezet en dat werkte. Dus dat leek me niet zo gek. Blijkt dus fout denken te zijn.
Dat iets werkt betekent nog niet dat het de beste manier is. Ik vind het even lastig om een analogie te vinden, dus dan maar een botte: je kan een schilderijtje best ophangen door een schroef met een wijnfles in de muur te slaan, of je gebruikt een spijker en een hamer. In beide gevallen werkt het maar de ene manier is netter dan de andere.
Maar in je reactie zeg je verder : "Dikgedrukt, dat is je programma. Waar zou je dan je module precies neer moeten zetten volgens je cursus" ? - En dat blijft de vraag waar ? want waar die module stond werkt het dus niet. Dus waar moet ze dan wel staan als ze niet mag staan waar ik ze nu weggezet heb in de library ?
Dat vroeg ik dus aan jou, en twee alinea's hierboven nog wat specifieker. Maar los daarvan, als je puur naar dat dikgedrukte deel kijkt en "zorg dat hij staat in de folder waar je je programma’s schrijft" in je achterhoofd houdt, waar zou je module dan moeten komen te staan denk je? Als je hier gewoon een concreet antwoord op geeft, goed of fout, geeft dat wat meer inzicht in je gedachtengang en is het makkelijker je de goeie kant op te sturen.

Acties:
  • 0 Henk 'm!

  • 1993scarlet
  • Registratie: Juni 2020
  • Laatst online: 08-03-2022
Bedankt voor het geduld dat je opbrengt Dataghost.

Het pad dat je vroeg is als volgt :
De module pcinput.py staat in :
SSD-MacOS Sierra/Gebruikers/Crash/Documenten/Python/Opgave 5.3.3.0.pcinput.py

het programma getInteger staat in :
SSD-MacOS Sierra/Gebruikers/Crash/Documenten/Python/Opgave 5.3.3.1.getInteger.py

Maar dan geeft "getInteger" dus een foutmelding
De vermelding Opgave 5.3.3.1 en Opgave 5.3.3.0 voor de benaming uit de cursus heb ik al eens weggehaald maar dat maakt geen verschil. Ik heb ze beiden ook al eens in een aparte submap van de map Python gezet (Modules) maar dat maakt ook geen verschil.

Een kopietje van pcinput.py heb ik toen dus gezet in :
SSD-MacOS Sierra/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8.pcinput.py

En dan werkt "getInteger.py" dus wel.

[ Voor 7% gewijzigd door 1993scarlet op 02-07-2020 15:11 ]


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 14:23

DataGhost

iPL dev

1993scarlet schreef op donderdag 2 juli 2020 @ 15:08:
SSD-MacOS Sierra/Gebruikers/Crash/Documenten/Python/Opgave 5.3.3.0.pcinput.py
SSD-MacOS Sierra/Gebruikers/Crash/Documenten/Python/Opgave 5.3.3.1.getInteger.py
SSD-MacOS Sierra/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/pcinput.py
Ik heb even de typo in je laatste pad aangepast, je bedoelt daar een / ipv een .
Anyway, 1: wat is precies het verschil tussen deze drie bestanden?
En 2: even aangenomen dat "import pcinput" met de bovenste bestandsnaam zou werken, wat verwacht je dat er gebeurt als je in opgave 5.3.2.9 (ik noem maar wat) ook een pcinput had moeten maken die iets heel anders doet? Concreet: je hebt dus
SSD-MacOS Sierra/Gebruikers/Crash/Documenten/Python/Opgave 5.3.2.9.pcinput.py
SSD-MacOS Sierra/Gebruikers/Crash/Documenten/Python/Opgave 5.3.3.0.pcinput.py
Welke zou "import pcinput" moeten gebruiken?

Nog een bijkomend dingetje van je plaatsing in het derde pad: normaal zou je programma self-contained moeten zijn, het zou moeten werken als je alleen je programmamap* (Documenten/Python bijvoorbeeld) op een andere computer zet. Dat doet het dus niet totdat je een deel daarvan in je Library-map zet. Op dezelfde manier stopt je programma met werken als jij straks een update naar Python 3.9 hebt gedaan, omdat je pcinput.py nog steeds in 3.8 staat. Om die redenen is het niet wenselijk om je module op die derde plaats neer te zetten, in ieder geval niet op de manier waarop je dat nu gedaan hebt (maar dat is een "veel geavanceerder" topic waar je nu nog lang niet aan toe bent).
* Er zijn hier genoeg uitzonderingen op, maar daar ben je ook nog niet aan toe op dit moment in je cursus

[ Voor 29% gewijzigd door DataGhost op 02-07-2020 15:20 ]


Acties:
  • +1 Henk 'm!

  • 1993scarlet
  • Registratie: Juni 2020
  • Laatst online: 08-03-2022
Goed , dat begrijp ik maar dan zou het toch met weglating van de Opgave 5. enz moeten werken zoals dit bv.:

SSD-MacOS Sierra/Gebruikers/Crash/Documenten/Python/pcinput.py
SSD-MacOS Sierra/Gebruikers/Crash/Documenten/Python/getInteger.py

en dat lukt dus ook niet . Of zie ik daar ook iets verkeerd ?

Wel goede tip voor die update .Daar had ik niet bij stilgestaan dat dan alles wat ik toegevoegd had kan verdwijnen.

Ik voel wel aan dat het nog stevig oefenen zal zijn. Ik zit dan ook al meerdere jaren in de club van mensen die een 7 voor hun leeftijd hebben staan en je moet je geest wat blijven oefenen natuurlijk al duurt alles wel wat langer dan jaren geleden. Ik hoop toch de eenvoudige dingen wat aan te leren zoals programmaatjes schrijven voor de kleindochter om met variabelen inhouden van bollen en kegels en zo te berekenen. Wat spelen met cijfers en formules en zo. En wat voor mogelijkheden ontdek ik misschien nog in Python als ik er de tijd voor krijg. Dus professioneel , dat is lang geleden.

Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 14:23

DataGhost

iPL dev

1993scarlet schreef op donderdag 2 juli 2020 @ 15:50:
Goed , dat begrijp ik maar dan zou het toch met weglating van de Opgave 5. enz moeten werken zoals dit bv.:

SSD-MacOS Sierra/Gebruikers/Crash/Documenten/Python/pcinput.py
SSD-MacOS Sierra/Gebruikers/Crash/Documenten/Python/getInteger.py

en dat lukt dus ook niet . Of zie ik daar ook iets verkeerd ?
Heb je dat net weer geprobeerd dan? Zo ja, en het werkt nog steeds niet, zie ik graag je commandline en output. Want ik gok dat je
De vermelding Opgave 5.3.3.1 en Opgave 5.3.3.0 voor de benaming uit de cursus heb ik al eens weggehaald maar dat maakt geen verschil. Ik heb ze beiden ook al eens in een aparte submap van de map Python gezet (Modules) maar dat maakt ook geen verschil.
dit wel geprobeerd hebt maar waarschijnlijk niet op de manier die je zegt, ik gok dat er wat door elkaar is gelopen en dat in je herinnering anders is gegaan dan in werkelijkheid, bijvoorbeeld met Opgave in dezelfde map (werkt niet) of zonder Opgave in de Modules-map (werkt ook niet), maar niet zonder Opgave in dezelfde map. Ik weet al dat dat hierboven correct moet zijn maar ik heb het zelf nog maar eens op verschillende manieren (zonder Opgave in dezelfde map) geprobeerd en bij mij werkt het gewoon.
Ik voel wel aan dat het nog stevig oefenen zal zijn. Ik zit dan ook al meerdere jaren in de club van mensen die een 7 voor hun leeftijd hebben staan en je moet je geest wat blijven oefenen natuurlijk al duurt alles wel wat langer dan jaren geleden.
Dat kan ik me zowel wel als niet goed voorstellen. Waarschijnlijk tegen die tijd beter. In ieder geval blijf ik de komende tig jaar wel bij mijn standpunt dat alles te leren is met voldoende oefening en doorzettingsvermogen, dus ook als het niet lukt en ook als het allemaal wat langzamer gaat. Juist de manieren waarop het niet lukt zijn die waar je het meeste van leert. Daarmee oefen je namelijk het probleem nog eens kritisch bekijken en analyseren en dat kan je de volgende keer dat je tegen iets aanloopt (geloof me, je doet bijna niet anders) weer toepassen.

[ Voor 4% gewijzigd door DataGhost op 02-07-2020 16:29 ]


Acties:
  • 0 Henk 'm!

  • 1993scarlet
  • Registratie: Juni 2020
  • Laatst online: 08-03-2022
Hoi Dataghost,
je hebt gelijk , ik zal wel ergens in de combinaties met en zonder dat deel van die naam erbij een fout gemaakt hebben.
Ik heb ze nu als volgt staan en dat werkt.
Het bestand "pcinput" uit de library heb ik naar de map documenten/python verplaatst.

Python 3.8.3 (v3.8.3:6f8c8320e9, May 13 2020, 16:29:34)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license()" for more information.
>>>
============ RESTART: /Users/crash/Documents/Python/pcinput.py ============
>>>

Python 3.8.3 (v3.8.3:6f8c8320e9, May 13 2020, 16:29:34)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license()" for more information.
>>>
=== RESTART: /Users/crash/Documents/Python/Opgave.5.3.3.1.getInteger.py ===

Er is nu in de pythonmap wel een map bijgekomen met naam "_pycache" met daarin een bestand met de naam "pcinput.cpython-38.pyc" maar dat zal wel normaal zijn neem ik aan?

Dus , probleem opgelost.
Veel dank voor de hulp en zeker voor de laatste aanmoediging.

Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 14:23

DataGhost

iPL dev

1993scarlet schreef op donderdag 2 juli 2020 @ 17:51:
Er is nu in de pythonmap wel een map bijgekomen met naam "_pycache" met daarin een bestand met de naam "pcinput.cpython-38.pyc" maar dat zal wel normaal zijn neem ik aan?
De naam zegt het al, het is een cache. Die kan je negeren. Je kan hem ook weggooien, maar de volgende keer dat je je programma uitvoert zal 'ie weer opnieuw aangemaakt worden, dus gewoon negeren is het makkelijkste. Die zorgt voor een (iets) sneller programma de volgende keer dat je 'm start zonder wijzigingen ten opzichte van de vorige keer, maar daar ga je met zulke simpele programma's niks van merken.
Pagina: 1