Bibliotheken für Python (Bibliotheken für Python), Lektion, Seite 724241
https://www.purl.org/stefan_ram/pub/bibliotheken_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Bibliotheken für Python 

Beispiele für Zusatzbibliotheken

NumPy
Numerik
*Pandas
zum Verarbeiten und Auswerten tabellarischer Daten (Zweck)
Pygame
Spieleprogrammierung
NLTK
Natürliche Sprache
Scrapy
A Scraping and Web Crawling Framework
scrapy.org
Weitere
github.com/vinta/awesome-python

Hinzufügen von Bibliotheken

Python -Version

Wenn man zum Lernen  eine sehr neue  experimentelle Python -Version (Alpha- oder Beta-Test-Stadium) verwendet, kann es sein, daß dafür bestimmte Bibliotheken noch nicht fertiggestellt  sind. Um mit Zusatzbibliotheken arbeiten zu können, kann es sinnvoll sein, dafür eine etwas kleinere Python -Version zu verwenden (die nicht mehr im Test-Stadium ist), oder sogar eine etwas ältere Python -Version (die ungefähr ein Jahr alt ist).

Installation

Zunächst sollte die Version der vorhandenen Python -Kommandos ermittelt werden.

Kommandos

pip --version

python --version

py --version

(»py«=»C:\Windows\py«)

Das Installationskommando sollte die passende Version haben. Man kann eine der folgenden Möglichkeiten wählen. Falls keines der drei obigen Aufrufe die richtige Version hat, ist eventuell der richtige Pfad voranzustellen.

Der Aufruf mit »python« erlaubt es möglicherweise, besser kontrollieren zu können, welche Version von Python  verwendet wird, falls mehrere Versionen installiert sind.

Kommandos

py -3.7 -m pip install --user numpy

pip install --user numpy

py -m pip install --user numpy

Die pip-Option »--user« erlaubt eine Installation, die nur für den angemeldeten Benutzer gilt. Dies ermöglicht unter Umständen erst eine Installation auf Systemen ohne Administratorenrechte.

Kommando
pip install --User NumPy

PS:

Anzeige der vorhandenen Versionen
py -0
Aufruf einer bestimmten Version (beispielsweise)

py -3.7

py -3.7 -m pip install numpy

Aufruf von Python aus
subprocess.check_call( [ sys.executable, '-m', 'pip', 'install', 'win32com'])
Aufruf von Python aus (ungetestet)

args = [ sys.executable, '-m', 'pip', 'install', 'win32com' ]

command=__import__( 'subprocess' ).list2cmdline(args)

print( f'EXECUTING {command}' )

with __import__( 'subprocess' ).Popen \
( command,
stdout=__import__( 'subprocess' ).PIPE,
stderr=__import__( 'subprocess' ).STDOUT,
bufsize=1, universal_newlines=True) as p:

for line in p.stdout:

print( end=line )

print( 'returncode = ', p.returncode )

Hinzufügen von Bibliotheken mit manuellem Herkopieren

Das manuelle Herkopieren ist nur nötig, wenn das zuvor beschriebene automatische Herkopieren nicht in Frage kommt.

Beispiel einer Installation mit manuellem Herkopieren

Als Beispiel zeigen wir die Installation von pyiwin32.

Web-Suche
pywin32 download
Ergebnis der Web-Suche
https://pypi.org/project/pywin32/

Am Ende der Ergebnisseite findet sich eine Auflistung verfügbarer Radversionen. Hier muß nun eine Version ausgewählt werden, die zur verwendeten Python -Version paßt!

Ausgewähltes Rad
pywin32-227-cp39-cp39-win_amd64.whl

Bei einem Rad ist es wichtig, daß die Versionsangabe (wie »cp39« oben) genau zur verwendeten Python-Version paßt. Das Rad »pywin32-227-cp39-cp39-win_amd64.whl« kann also nur  für die Versionen „CPython 3.9.…“ verwendet werden, aber weder für „CPython 3.8.…“ noch für „CPython 3.10.…“.

Nun kann das Rad in ein lokales Radverzeichnis  gespeichert werden und alsdann durch eine Aufruf der passenden pip-Version installiert werden.

Installation des Rades
"C:\Users\name\AppData\Local\Programs\Python\Python39\Scripts\pip.exe" install "C:\Users\s\Documents\Python_wheels\pywin32-227-cp39-cp39-win_amd64.whl"
Ausgegebene Meldungen

Processing C:\Users\s\Documents\Python_wheels\pywin32-227-cp39-cp39-win_amd64.whl

Installing collected packages: pywin32

Successfully installed pywin32-227

Could not fetch URL https://pypi.org/simple/pip/

Trotz der Fehlermeldung wurde pywin32  installiert. (Die Fehlermeldung bezieht sich nur darauf, daß pip  sich nach der Installation nicht selbst aktualisieren konnte.)

Lösungen möglicher Probleme

»whl« – Räder

Räder (.whl) sind Archive mit fertig zusammengestellten Paketen zur Installation einer Bibliothek. Eine bestimmte Raddatei kann dabei unter Umständen nur für eine bestimmte Betriebsystem- und Prozessorversion verwendet werden.

Eier

Eier (.egg) sind ältere radähnliche Pakete und eine Art von Zip-Archiven. Das Eisystem von 2004 (setuptools) ging dem Radsystem von 2012 (PEP 427) zeitlich voran.

Einzelne Bibliotheken

»OpenSSL«

Die korrekte Bezeichnung der Bibliothek lautet: »pyOpenSSL«, daher: »pip install pyOpenSSL«.

Weitere korrekte Bezeichnungen von Bibliotheken

»colorama«.

Sammlung von Erweiterungspaketen für Windows 

von Christoph Gohlke, benötigt JavaScript  im Browser, Seite umfaßt zirka 3 MB

Sammlung von Erweiterungspaketen für Windows 
www.lfd.uci.edu/~gohlke/pythonlibs

Ein Installationsskript

main.py

#import sys
#sys.path.append("C:\\Users\\Pa5512H-KL\\AppData\\Local\\Programs\\Python\\Python38\\Lib\\site-packages\\win32\\")
#sys.path.append("C:\\Users\\Pa5512H-KL\\AppData\\Local\\Programs\\Python\\Python38\\Lib\\site-packages\\win32\\lib\\")
# 1. pywin32 installieren ("-ignore-installed" ist normalerweise nicht noetig.)
# > pip3.8 install -ignore-installed pywin32

import subprocess
import sys
import os.path

if True:
args = [ sys.executable, '-m', 'pip', 'install', 0*'pypiwin32' + 1*'pywin32', '--force-reinstall' ]
command=__import__( 'subprocess' ).list2cmdline(args)
print( f'EXECUTING {command}' )
with __import__( 'subprocess' ).Popen \
( command,
stdout=__import__( 'subprocess' ).PIPE,
stderr=__import__( 'subprocess' ).STDOUT,
bufsize=1, universal_newlines=True) as p:
for line in p.stdout:
print( end=line )
print( 'returncode = ', p.returncode )

# 2. Installationsordner ermitteln (wird nicht benötigt)
# > pip3.8 show pywin32
# < Location: c:\users\pa5512h-kl\appdata\local\programs\python\python38\lib\site-packages

if False:
args = [ sys.executable, '-m', 'pip', 'show', 'pywin32' ]
command=__import__( 'subprocess' ).list2cmdline(args)
print( 'A', f'EXECUTING {command}' )
with __import__( 'subprocess' ).Popen \
( command,
stdout=__import__( 'subprocess' ).PIPE,
stderr=__import__( 'subprocess' ).STDOUT,
bufsize=1, universal_newlines=True) as p:
i = 0
for line in p.stdout:
print( 'B', i := i + 1, end=line )
# 'B' 8 'Location: c:\users\pa5512h-kl\appdata\local\programs\python\python38\lib\site-packages'
if line.startswith( 'Location: ' ):
site_packages = line.split( ': ' )[1][:-1]
print( 'P', site_packages )
print( 'C', 'returncode = ', p.returncode )

# im scripts folder aufrufen (add to ram.py):
# > pywin32_postinstall.py -install

if True:
args = [ sys.executable, os.path.dirname(sys.executable)+r'\Scripts\pywin32_postinstall.py', '-install' ]
command=__import__( 'subprocess' ).list2cmdline(args)
print('command=',command)
print( 'A', f'EXECUTING {command}' )
with __import__( 'subprocess' ).Popen \
( command,
stdout=__import__( 'subprocess' ).PIPE,
stderr=__import__( 'subprocess' ).STDOUT,
bufsize=1, universal_newlines=True) as p:
i = 0
for line in p.stdout:
print( 'B', i := i + 1, end=line )
print( 'C', 'returncode = ', p.returncode )

print()
print( 'NOW YOU NEED TO RESTART YOUR PYTHON INTERPRETER!' )
print()

# danach steht win32com.client zur Verfuegung
import win32com.client as win32
from time import sleep
excel = win32.Dispatch( "Excel.Application" )
excel.Visible = True
workbook = excel.Workbooks.Add()
worksheet = workbook.Worksheets.Add()
cell = worksheet.Cells(1)
cell.Value = 'Written using Python'
worksheet.Cells[2,2]='=A1'
worksheet.Range["D4:G4"].Value=[2,-9,16,41]
ws.Range["I1:I4"].Value=[[2],[-9],[16],[41]]
excel.DisplayAlerts = False
workbook.SaveAs( 'PythonExample20200202013337.xls' )
sleep( 1 )

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724241 stefan_ram:724241 Bibliotheken für Python Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724241, slrprddef724241, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/bibliotheken_python