Hallo,
eigentlich ist das wie beim Programmieren: mit genügend Abstraktionsschichten dazwischen kann man auch eine schlecht designte, komplizierte API einfach und verständlich machen.
Was halt hier im Thread anders als beim Programmieren ist: Humor hilft
Gruß, noisefloor
Letzter Versuch: Python statt PHP?
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Ist so ruhig geworden hier. Habe mich mal an ``dir /S /A:-S /A:-D /T:W /O:-S {path}`` in Python versucht:
Gekürzte Testausgabe:
Code: Alles auswählen
#!/usr/bin/env python3
import os
from datetime import datetime as DateTime
from functools import partial
from attr import attrib, attrs
import click
from psutil import disk_usage
@attrs(frozen=True)
class File:
name = attrib()
size = attrib()
modified_at = attrib()
def __str__(self):
return (
f'{self.modified_at:%Y-%m-%d %H:%M:%S}'
f' {self.size:-12d}'
f' {self.name}'
)
@classmethod
def from_path_and_name(cls, path, filename):
file_stats = os.lstat(os.path.join(path, filename))
return cls(
filename,
file_stats.st_size,
DateTime.fromtimestamp(file_stats.st_mtime),
)
@attrs
class Folder:
path = attrib()
files = attrib()
def __len__(self):
return len(self.files)
def __iter__(self):
return iter(self.files)
def __str__(self):
files_text_block = '\n'.join(map(str, self))
return (
f'Directory of {self.path}\n\n'
f'{files_text_block}\n\n'
f'{len(self):-8d} file(s) {self.size:-20d} bytes'
)
@property
def size(self):
return sum(file.size for file in self)
@classmethod
def from_path_and_names(cls, path, filenames):
make_file = partial(File.from_path_and_name, path)
return cls(
os.path.abspath(path),
sorted(
map(make_file, filenames),
key=lambda file: (-file.size, file.name),
)
)
def iter_directories(base_path):
file_count = 0
total_size = 0
for path, _, filenames in os.walk(base_path):
files = Folder.from_path_and_names(path, filenames)
if files:
file_count += len(files)
total_size += files.size
yield f'{files}\n\n'
bytes_free = disk_usage(base_path).free
yield (
f' Total files listed:\n'
f'{file_count:-8d} files {total_size:-16d} bytes\n'
f' 0 directories {bytes_free:-16d} bytes free\n'
)
@click.command()
@click.argument('path', default=os.curdir)
def main(path):
"""Windows/DOS ``dir /S /A:-S /A:-D /T:W /O:-S {path}`` in Python.
If no path is given, the current directory is assumed.
"""
click.get_text_stream('stdout').writelines(iter_directories(path))
if __name__ == '__main__':
main()
Code: Alles auswählen
Directory of /home/bj/tmp/pco_sdk
2018-01-26 09:00:50 24406304 SW_PCOSDKWIN_123_0001.exe
2017-01-12 12:56:02 1685504 Create_pco_vs_props.exe
2018-01-26 09:00:38 159992 uninstall.exe
2018-01-26 08:59:50 19467 read_me.txt
2011-10-20 09:14:16 2680 License.txt
2017-01-12 16:21:16 192 create_props.bat
6 file(s) 26274139 bytes
Directory of /home/bj/tmp/pco_sdk/$_26_
2016-07-26 08:31:36 508928 sc2_cl_mtx.dll
2017-08-04 13:16:08 312832 sc2_cl_me4.dll
2017-02-02 17:32:46 275968 sc2_clhs.dll
2016-07-26 08:31:36 246784 sc2_cl_nat.dll
2016-07-13 10:05:48 135168 find_nat.exe
5 file(s) 1479680 bytes
Directory of /home/bj/tmp/pco_sdk/include
2017-12-15 07:42:06 130739 SC2_CamExport.h
2017-12-04 14:26:36 63575 sc2_defs.h
2017-11-15 15:53:06 52769 sc2_SDKStructures.h
2017-08-30 15:31:22 39926 PCO_err.h
2017-08-30 15:31:22 38447 PCO_errt.h
2014-02-17 14:19:22 18938 Pco_edge_gs_calc_Export.h
2017-09-27 10:37:42 13337 SC2_SDKAddendum.h
2014-08-29 09:59:18 10522 SC2_DialogExport.h
2015-05-20 11:09:26 9832 Pco_ConvStructures.h
2015-03-10 09:15:18 8938 Pco_ConvExport.h
2017-08-03 17:06:32 5915 sc2_common.h
2015-04-17 09:00:14 4633 Pco_ConvDlgExport.h
2015-06-12 14:39:24 2542 PCO_Structures.h
13 file(s) 400113 bytes
[…]
Directory of /home/bj/tmp/pco_sdk/sample/SC2_Demo
2014-12-12 12:13:28 30070 SC2_Class.cpp
2017-01-12 15:00:10 15424 SC2_Demo.vcxproj
2010-08-19 10:04:08 9308 SC2_Demo.rc
2010-09-01 16:26:18 7024 MainFrm.cpp
2006-03-22 15:38:52 3893 ReadMe.txt
2010-05-20 16:56:42 3328 SC2_Demo.cpp
2008-06-09 08:59:24 2428 ChildView.cpp
2010-09-01 16:26:18 2374 MainFrm.h
2014-03-24 11:48:04 2337 SC2_Class.h
2010-08-31 17:03:10 1432 targetver.h
2006-03-28 16:54:08 1418 ChildView.h
2006-03-28 16:54:08 1404 SC2_Demo.h
2017-01-10 10:35:56 1315 SC2_Demo.sln
2010-08-19 10:03:30 1053 resource.h
2010-08-31 16:18:06 1031 StdAfx.h
2006-03-28 16:54:08 212 StdAfx.cpp
16 file(s) 84051 bytes
Directory of /home/bj/tmp/pco_sdk/sample/SC2_Demo/res
2008-09-30 16:26:44 10990 SC2_Demo.ico
2010-12-13 11:20:28 738 SC2_Demo.manifest
2006-03-28 14:56:00 478 Toolbar.bmp
2006-03-22 15:38:52 400 SC2_Demo.rc2
4 file(s) 12606 bytes
Total files listed:
200 files 75026513 bytes
0 directories 15082020864 bytes free
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Danke für den code.
Mir egal, womit ich code generiere. Python wirkt recht kniffelig.
Schon 'import click' müsste wohl wie NumPy zum integrieren irgendwo versteckt recherchiert werden.
Inzwischen habe ich fürs web den Eindruck, php kann bleiben. Es ist total einfach und übersichtlich.
Will hier nicht gegen Python lästern, ist aber eher was für freaks, die sich zum Rumspielen gerne reinwühlen.
Angeblich wird Python vor allem fürs web benutzt, wo ich aber lieber bei php bleibe.
Die Umgebung ist komplex und diffizil, was simple Nutzung leider sehr erschwert. Totale Verästelung.
Es fehlt die universell einfache kompakte Zusammenfassung zumindest für Windows.
Mein Fragment läuft zwar, aber bereits diese primitivste Anforderung ist reichlich verzwirbelt:
Mir egal, womit ich code generiere. Python wirkt recht kniffelig.
Schon 'import click' müsste wohl wie NumPy zum integrieren irgendwo versteckt recherchiert werden.
Inzwischen habe ich fürs web den Eindruck, php kann bleiben. Es ist total einfach und übersichtlich.
Will hier nicht gegen Python lästern, ist aber eher was für freaks, die sich zum Rumspielen gerne reinwühlen.
Angeblich wird Python vor allem fürs web benutzt, wo ich aber lieber bei php bleibe.
Die Umgebung ist komplex und diffizil, was simple Nutzung leider sehr erschwert. Totale Verästelung.
Es fehlt die universell einfache kompakte Zusammenfassung zumindest für Windows.
Mein Fragment läuft zwar, aber bereits diese primitivste Anforderung ist reichlich verzwirbelt:
Code: Alles auswählen
#!e:/Apache24/python/python.exe
print ("Content-type: text/html")
print ("")
print ("<html><head>")
print ("")
print ("</head><body>")
print ("")
import os
from os.path import join, getsize
#os.startfile("C:\F\OverDisk\OverDisk.exe") #ok
#sys.exit() #ok
def dosomething( thelist ):
for element in thelist:
print ( element )
dosomething( ['1','2','3'] )
alist = ['red','green','blue']
dosomething( alist )
def a1(arr):
print(arr[0])
a = [["<br>",1, 2, 3, "ui<br>"], [4, 5, 6]]
a1(a)
def sum_it_up(num_1, num_2, num_3, *nums): #*-Operator
# list_sum = functools.reduce(lambda x,y: x+y, nums)
return num_1 + num_2 + len(nums)
my_list = [1,3,5,7]
print (sum_it_up(*my_list))
b=[["Ordner1","file1"],["Ordner2","file2"]]
print(b[0][0])
i=1
print(b[0][i])
def zeig(x):
print(x[0][1]);
zeig(b)
print("<br>")
# Rechtsklick Maus und UTF-8, nie TAB
# def to_text_files(*arguments):
# for path, filename in arguments:
# subprocess.run(
# f'dir /S /A:-S /A:-D /T:W /O:-S /-C "{path}" > "{filename}"',
# shell=True,
# )
# def to_text_files(items):
# for path, filename in items:
# with open(filename, 'wb') as out_file:
# subprocess.run(
# ['dir', '/S', '/A:-S', '/A:-D', '/T:W', '/O:-S', '/-C', path],
# stdout=out_file,
# )
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
s = 0
def to_text_files(*arguments):
for path, filename in arguments:
subprocess.run(
print("hallo"),
shell=True,
# f'dir /S /A:-S /A:-D /T:W /O:-S /-C "{path}" > "{filename}"',
)
#to_text_files(a) #wie? aber egal, brauchts nicht
for row in a:
for elem in row:
s += elem
print(s)
# keinen tab verwenden, muss UTF-8 sein, rechter Mausklick kommentieren
b = [["Ordner1","file1"],["Ordner2","file2"]]
for row in b:
print("<br>row[0]: ",row[0]," row[1]: ",row[1])
# for elem in row:
# print("<br>elem: ",elem," row: ",row[1])
print("<br>war row<br>")
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
exec(open(filename).read())
ax ="E:\Test"
os.listdir(ax)
print("<br>war listdir<br>")
for subdir, dirs, files in os.walk("."):
for file in files:
print(os.path.join(subdir, file)+"<br>")
print("<br>war erster walk<br><br>")
# https://www.coding-board.de/threads/python-dateien-aus-aktuellen-verzeichnis-unterverzeichnis-auslesen.37937/
# google: python ordner auslesen
# https://docs.python.org/3.4/library/os.html
for root, dirs, files in os.walk(ax):
for file in files:
x=os.path.join(root, file)
print("<br>",os.path.join(root)," \ ",os.path.join(file),os.path.getsize(x)," neu: ",getsize(join(root, file)))
print("<br> und weiter<br>")
# k=0
# for root, dirs, files in os.walk("E:\Test"):
# print(root, "consumes", end=" ")
# ay=sum(getsize(join(root, name)) for name in files)
# print(ay, end=" ") # print(sum(getsize(join(root, name)) for name in files), end=" ")
# print("bytes in", len(files), "non-directory files")
# if 'CVS' in dirs:
# dirs.remove('CVS') # don't visit CVS directories
# k+=ay
# print("Gesamtsumme: ",k,"<br>")
# print("Alles: ",k)
# import subprocess
def die_files(x): #muss vor dem Aufruf stehen
for row in x:
print("<br>row[0]: ",row[0]," row[1]: ",row[1])
print("<br>los gehts:")
die_files([["E:/test","E:/c/res.txt"],["E:/test1","E:/c/res1.txt"],["E:/test2","E:/c/res2.txt"]])
print("<br>das wars<br>")
s=0
for row in a:
for elem in row:
s += elem
print(s)
"""
ist
ein
Kommentar
"""
for num in range(2, 10):
if num % 2 == 0:
print("Found an even number", num)
continue
print("---Found a number", num)
print("<br>weiter:<br>")
with os.scandir(ax) as it: #ok
for entry in it:
# if not entry.name.startswith('.') and entry.is_file():
print(entry.name)
from pathlib import Path
def get_txt_files(base_dir): #ignoriert es in base_dir
return Path(base_dir).glob("*/*.png")
for name in get_txt_files("E:\\"):
print("<br>name: ",name)
print("<br><br>")
# https://python-forum.io/Thread-scandir-recursively-and-return-path-filename ->
for root,dirs,files in os.walk(ax):
for file in files:
print("<br>",join(root, file)," root: ",root," sum: ",sum(getsize(join(root, name)) for name in files), " single: ",getsize(join(root, file)))
#sum ist die Summe aller files oben im jeweiligen Ordner
print("<br>fertig")
print ("</body></html>")
Na ja, es sollte alles extrem kompakt kurz zusammengefasst vorliegen.
Sicher kann man es sehr einfach angehen, ohne sich in Verästelungen zu verirren.
Hartgesottene freaks könnten sich das mal vornehmen.
Und portable ist schon fast Pflicht: Notepad++, Apache und der browser, nix kompilieren.
Wie komme ich zu import click und vielleicht sogar NumPy?
Den code von blackjack würde ich gerne mal verwenden können.
Sicher kann man es sehr einfach angehen, ohne sich in Verästelungen zu verirren.
Hartgesottene freaks könnten sich das mal vornehmen.
Und portable ist schon fast Pflicht: Notepad++, Apache und der browser, nix kompilieren.
Wie komme ich zu import click und vielleicht sogar NumPy?
Den code von blackjack würde ich gerne mal verwenden können.
Gar nicht. Da du nun mal darauf bestehst, Randbedingungen aufzustellen, die mit der Installation dieser Pakete unvereinbar sind. Das ist dir aber schon 20mal gesagt worden. Davon, dass du den Wunsch zum 21ten mal aeusserst, wird er nicht erfuellbarer. Die Welt dreht sich erstaunlicherweise nicht um dich, und um die Erfuellung deiner Beduerfnisse. Benutz Python so wie jeder andere auch, und es wird dir geholfen. Geh deinen eigenen Weg, dann lern mit den Konsequenzen zu leben.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Aber Einsicht ist ja bekanntlich der 1. Schritt zu Besserung. Wenn du erkannt hast, dass Python und deine Vorstellung von Webprogrammierung inkompatible sind - ok, ist doch schon mal was.
Gruß, noisefloor
Dann ist das doch DEIN Ding. Noch "freakiger" als deine Vorstellung, wie das zu laufen hat, kann's kaum werden...st aber eher was für freaks,
Wo immer du das her hast -> stimmt nicht.Angeblich wird Python vor allem fürs web benutzt,
Für eine simple Nutzung steht vor allem eins im Weg: du selber und deine Einstellung.was simple Nutzung leider sehr erschwert
Python ist cross-platform, das verhält sich unter Win genau so wie unter Linux wie unter MacOS wie unter..Es fehlt die universell einfache kompakte Zusammenfassung zumindest für Windows.
Aber Einsicht ist ja bekanntlich der 1. Schritt zu Besserung. Wenn du erkannt hast, dass Python und deine Vorstellung von Webprogrammierung inkompatible sind - ok, ist doch schon mal was.
Gruß, noisefloor
Wäre wirklich sehr nett, den code von blackjack verwenden zu können.
An sich funktioniert es doch portable.
Je einfacher die Entwicklungsumgebung, desto einladender ist es für Neunutzer.
Deswegen kam ich ja auch zu php, weil es total simpel einzurichten ist, womit dann alles gleich funktioniert.
Portable ist wie der Schuhlöffel in bereits verschnürte flotte Läufer.
Man schlüpft mit dem code rein und ist schon draußen in freier Natur flott unterwegs, lach.
Ich will mich nicht mit Schnürpendeln befassen müssen.
An sich funktioniert es doch portable.
Je einfacher die Entwicklungsumgebung, desto einladender ist es für Neunutzer.
Deswegen kam ich ja auch zu php, weil es total simpel einzurichten ist, womit dann alles gleich funktioniert.
Portable ist wie der Schuhlöffel in bereits verschnürte flotte Läufer.
Man schlüpft mit dem code rein und ist schon draußen in freier Natur flott unterwegs, lach.
Ich will mich nicht mit Schnürpendeln befassen müssen.
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@oops: Das Dein Fragment „reichlich verzwirbelt“ ist, stimmt vielleicht, liegt aber nicht an Python, sondern an Dir. Und es läuft so sicher nicht, da ist mindestens ein `NameError` drin der es nicht durchlaufen lässt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
dein Setup ist nicht einfach. Denkst du vielleicht, weil du es nicht besser weisst und aus deinem doch recht engstirnigen Mikrokosmos gar nicht raus willst (oder kannst, weil du dir selber im Weg stehst).
Apache und einfach schliesst sich ja in sich schon aus.
PHP ist bei dir nicht einfach, weil es im Apache läuft.
Gruß, noisefloor
dein Setup ist nicht einfach. Denkst du vielleicht, weil du es nicht besser weisst und aus deinem doch recht engstirnigen Mikrokosmos gar nicht raus willst (oder kannst, weil du dir selber im Weg stehst).
Apache und einfach schliesst sich ja in sich schon aus.
PHP ist bei dir nicht einfach, weil es im Apache läuft.
Ja, aber so lange du dir mit deiner Einstellung selber im Weg stehst, wird das nicht passieren. Henne-Ei Problem...Wäre wirklich sehr nett, den code von blackjack verwenden zu können.
Gruß, noisefloor
@__blackjack__, wie bringe ich bitte den netten code zum Laufen?
Vielen Dank für die Mühe.
Kann doch wohl nur an import click liegen?
Je einfacher eine Programmiersprache zudem portable anwendbar ist, desto freudiger stürzen sich user auf sie.
Ich schreibe den code in Notepad++ und clicke ihn im browser an.
Einfacher gehts nicht. Damit hat man den Zugriff auf die Datenträger.
Vielen Dank für die Mühe.
Kann doch wohl nur an import click liegen?
Je einfacher eine Programmiersprache zudem portable anwendbar ist, desto freudiger stürzen sich user auf sie.
Ich schreibe den code in Notepad++ und clicke ihn im browser an.
Einfacher gehts nicht. Damit hat man den Zugriff auf die Datenträger.
Es ist alles ganz einfach!
pip install numpy
pip install click
Schon alles installiert! Schon kann der Code von __blackjack__ verwandt werden! Es ist alles ganz einfach. Man muss es nur so machen, wie es gedacht ist.
Leute, die EMBEDDED Python benutzen (PORTABLE Python gibt es nicht) - die muessen halt wissen, wie sie das selbst hinkriegen.
pip install numpy
pip install click
Schon alles installiert! Schon kann der Code von __blackjack__ verwandt werden! Es ist alles ganz einfach. Man muss es nur so machen, wie es gedacht ist.
Leute, die EMBEDDED Python benutzen (PORTABLE Python gibt es nicht) - die muessen halt wissen, wie sie das selbst hinkriegen.
Wie bitte? Im code geht das nicht.
https://www.heise.de/developer/meldung/ ... 00782.html
Uninstalliert nutzbare exe-files sind portable files.
https://www.heise.de/developer/meldung/ ... 00782.html
Uninstalliert nutzbare exe-files sind portable files.
Zuletzt geändert von oops am Sonntag 10. Februar 2019, 16:46, insgesamt 1-mal geändert.
Ui, ghost in the shell?
Wie gehtn das?
Mein Fragment flutscht im browser durch, ein Startordner und alles darin kommt vor.
Meine Fragen kommen bei php portable erst gar nicht auf.
Ist es endlich geklärt, gehts mal mit Python weiter.
Dürfte auch andere interessieren, die sich nicht mit Innereien herumquälen sondern es flux anwenden wollen.
Man will code schreiben, dessen Ablauf nicht durch Hintergrund-Umgebungsbedingungen verhindert wird.
Wenn man in einen Sportwagen einsteigt, will man auch nicht erst in der Werkstatt daran herumfummeln müssen.
Gut, freaks mögen danach lechzen, andere aber nicht.
Wie gehtn das?
Mein Fragment flutscht im browser durch, ein Startordner und alles darin kommt vor.
Meine Fragen kommen bei php portable erst gar nicht auf.
Ist es endlich geklärt, gehts mal mit Python weiter.
Dürfte auch andere interessieren, die sich nicht mit Innereien herumquälen sondern es flux anwenden wollen.
Man will code schreiben, dessen Ablauf nicht durch Hintergrund-Umgebungsbedingungen verhindert wird.
Wenn man in einen Sportwagen einsteigt, will man auch nicht erst in der Werkstatt daran herumfummeln müssen.
Gut, freaks mögen danach lechzen, andere aber nicht.
Zuletzt geändert von oops am Sonntag 10. Februar 2019, 17:17, insgesamt 5-mal geändert.
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@oops: Shell Kommandos gibt man in die Shell des Betribssystems ein und dann werden die ausgeführt. Dazu musst Du ``pip`` natürlich installiert haben, beziehungsweise Python ganz normal installieren, denn das installiert auch ``pip`` mit. Mit dem „embeddeble“ Python das Du benutzt geht das aber nicht, weil ``pip`` dort nicht uneingeschränkt nutzbar ist. Das steht auch in der Dokumentation und wurde in diesem Thema auch schon mal erwähnt.
Das man sich Apache und Python braucht und sich selbst Code in Notepad++ schreiben muss um Zugriff auf Datenträger zu haben ist IMHO alles andere als einfach. Normale Menschen nehmen einfach den dafür vom System vorgesehenen Dateimanager oder installieren sich einen (oder mehrere) die ihren Bedürfnissen am nächsten kommen.
Das man sich Apache und Python braucht und sich selbst Code in Notepad++ schreiben muss um Zugriff auf Datenträger zu haben ist IMHO alles andere als einfach. Normale Menschen nehmen einfach den dafür vom System vorgesehenen Dateimanager oder installieren sich einen (oder mehrere) die ihren Bedürfnissen am nächsten kommen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
@__blackjack__: ob *.py oder *.php ist bei mir egal. Beides funktioniert gleichermaßen, nur mit unterschiedlichem code.
Irgendwo auf einem Datenträger in wenigen Sekunden entpacktes und so immer wieder auf dem neuesten Stand befindliches portable Apache24 delegiert ihn weiter.
Ebenso dort einen Ordner für Python anlegen, nenne ihn python, habe ihn der Einfachheit halber in dem Apache-Ordner angelegt. Darin ist python portable entpackt.
Einfacher geht es nicht.
Code muss man ohne KI immer selber schreiben. Dazu ist Notepad++ portable auch für Python hervorragend geeignet.
Nur die jeweils erste *.py Zeile definiert den Ort von python.exe. Apache erkennt daran die Zielsprache und ihren Ort.
Das *.py starte ich im browser, mit dem ich mir den PC komplett zugänglich machte.
'pip' hat vermeidbar zu sein, falls es nicht portable anwendbar ist.
Überall hakts für portable user, die nicht weiter tief einsteigen wollen und brauchen.
Vielleicht tut sich da auch durch meine Ausführungen hier was, damit niemand was zu installieren braucht.
Irgendwo auf einem Datenträger in wenigen Sekunden entpacktes und so immer wieder auf dem neuesten Stand befindliches portable Apache24 delegiert ihn weiter.
Ebenso dort einen Ordner für Python anlegen, nenne ihn python, habe ihn der Einfachheit halber in dem Apache-Ordner angelegt. Darin ist python portable entpackt.
Einfacher geht es nicht.
Code muss man ohne KI immer selber schreiben. Dazu ist Notepad++ portable auch für Python hervorragend geeignet.
Nur die jeweils erste *.py Zeile definiert den Ort von python.exe. Apache erkennt daran die Zielsprache und ihren Ort.
Das *.py starte ich im browser, mit dem ich mir den PC komplett zugänglich machte.
'pip' hat vermeidbar zu sein, falls es nicht portable anwendbar ist.
Überall hakts für portable user, die nicht weiter tief einsteigen wollen und brauchen.
Vielleicht tut sich da auch durch meine Ausführungen hier was, damit niemand was zu installieren braucht.
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@oops: Also ich habe hier einen Dateimanager der mit dem System zusammen installiert wurde und dessen Code ich nicht selbst schreiben musste. Dazu brauchte es keine KI, und das Programm macht mir meinen PC komplett zugänglich. Das ist einfacher als sich einen Texteditor und Apache mit PHP oder Python auf den Rechner zu packen und da irgend etwas selber programmieren zu müssen.
Soso, „'pip' hat vermeidbar zu sein, falls es nicht portable anwendbar ist“. Deine Forderungen sind ja irgendwie süss. Wie ein kleines bockiges Kind, das unbedingt will das die Welt gefälligst so zu funktionieren hat wie es das will. Stampf mal beleidigt mit dem Fuss auf. Vielleicht klappt es ja dann.
``pip`` ist natürlich vermeidbar, aber dann muss man halt verstehen was man da macht, was Du halt nicht tust, zum einen weil Du offensichtlich nicht willst, und wohl auch nicht in der Lage dazu bist.
Soso, „'pip' hat vermeidbar zu sein, falls es nicht portable anwendbar ist“. Deine Forderungen sind ja irgendwie süss. Wie ein kleines bockiges Kind, das unbedingt will das die Welt gefälligst so zu funktionieren hat wie es das will. Stampf mal beleidigt mit dem Fuss auf. Vielleicht klappt es ja dann.
``pip`` ist natürlich vermeidbar, aber dann muss man halt verstehen was man da macht, was Du halt nicht tust, zum einen weil Du offensichtlich nicht willst, und wohl auch nicht in der Lage dazu bist.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
@__blackjack__: es läuft sicher auch auf einem winzigen USB-Stick. Bei mir ist fast nix mehr installiert.
'pip' oder sonstwas ist egal, wenn es portable geht. Man kann alles portable machen - was für freaks auch zum tuning.
Ich bin nicht Willens, irgendwas zu installieren. War ich auch bei php nicht und hat funktioniert.
Unter 'Dateimanager' verstehe ich den Windows Explorer.
Wie gesagt, ob py oder php ist völlig egal.
Wie läuft dann bitte der code ohne pip bei mir?
Ab der Zeile "from attr import attrib, attrs" bleibt er hängen, noch vor 'import click'.
Hallo2 kommt noch.
'pip' oder sonstwas ist egal, wenn es portable geht. Man kann alles portable machen - was für freaks auch zum tuning.
Ich bin nicht Willens, irgendwas zu installieren. War ich auch bei php nicht und hat funktioniert.
Unter 'Dateimanager' verstehe ich den Windows Explorer.
Wie gesagt, ob py oder php ist völlig egal.
Wie läuft dann bitte der code ohne pip bei mir?
Ab der Zeile "from attr import attrib, attrs" bleibt er hängen, noch vor 'import click'.
Hallo2 kommt noch.
Code: Alles auswählen
#!e:/Apache24/python/python.exe
import sys,os
print ("Content-type: text/html")
print ("")
print ("<html><head>")
print ("")
print ("</head><body>")
print("Hallo<br>")
from datetime import datetime as DateTime
print("Hallo1<br>")
from functools import partial
print("Hallo2<br>")
from attr import attrib, attrs
print("Hallo3<br>")
import click
from psutil import disk_usage
......