Installation und Konfiguration von Python auf Win 10 und auch auf MX-Linux 19.1 - Befunde und Fragen

Probleme bei der Installation?
Antworten
say_hello
User
Beiträge: 20
Registriert: Sonntag 14. Oktober 2012, 12:33

Montag 23. März 2020, 22:32

Hallo und guten Abend


vorweg: bin sehr froh dass ihr ein Forum(Unterforum habt, das für dem Thema Installation und Konfiguration vorbehalten ist. Super Sache und wie für mich gemacht.

,,,, ich bin am Aufbau einer Entwicklungsumgebung für Python auf zwei Systemen:

Win 10: mit PyCharm, VsCode u. ATOM (Bürorechner)
MX-Linux: mit ATOM (@home)


Zwischenfazit: also noch läuft das etwas holprig - auf der Linux-Kiste ist die Frage ob ich denn

a. alle Python-Pakete schon richtig eingerichtet habe und ob
b. ich auch die richtigen Plugins von Atom verwende - ferner hätter ich auf der MX-Linux 19.1 gerne halt auch
c. VSCode, das ist im Mom aber nicht in den Repositories drinne - die Installation kann via Flatpack oder Codium oder noch auf einem dritten
Wege laufen.... Alles in Allem halt etwas doof - aber ATOM ist - wenn alles gut eingerichtet ist ja auch nicht übel hat v.a. auch eine nette Github-Integration.

Es kommen also sicher zu beiden Systeme - zum Aufbau auf Windows 10 und auch auf der MX-Linux-Kiste sicher noch ein paar Fragen in den kommenden Tagen.


Hier ein Mini-Befund den ich eben im Büro mache:

Code: Alles auswählen

rom time import sleep
from time import time
from random import randint
from bs4 import BeautifulSoup
from requests import get
import pandas

#loop through individual webpages
pages = [str(i) for i in range(1,3)]


name = []
date = []
location = []

start_time = time()
requests = 0

for page in pages:

    url = 'https://www.eventbrite.com/d/malaysia--kuala-lumpur--85675181/all-events/?page=' + str(page)
    response = get(url)

    sleep(randint(1,3))

    requests += 1
    elapsed_time = time() - start_time
    print('Request: {}; Frequency: {} requests/s'.format(requests, requests/elapsed_time))

    if response.status_code != 200:
        print('Request: {}; Status Code: {}'.format(requests, response.status_code))

    html_soup = BeautifulSoup(response.text, 'html.parser')

    #main div
    event_containers = html_soup.find_all('div', class_ = 'eds-media-card-content__content__principal')

    for container in event_containers:

        #get event name
        event_name = container.h3.div.div.text
        name.append(event_name)

        #get event day & date
        event_date = container.div.div.text
        date.append(event_date)

        #get event location
        event_location = container.find('div', class_ = 'card-text--truncated__one')
        location.append(event_location)

event_list = pandas.DataFrame({
    'event': name,
    'date': date,
    'location': location})

event_list = event_list.drop_duplicates()    
print(event_list)
ist von hier - https://stackoverflow.com/questions/608 ... b-scraping
und dient zu einem Test meines Systems hier

Code: Alles auswählen

Traceback (most recent call last):
  File "C:/Users/foo_the_user/.PyCharmEdu2019.2/config/scratches/scratch.py", line 4, in <module>
    from bs4 import BeautifulSoup
ModuleNotFoundError: No module named 'bs4'
Process finished with exit code 1

Doch - wenn man mal schaut was ich vorhin noch auf den Rechner draufgepackt habe dann ist das folgendes

Code: Alles auswählen



Windows PowerShell
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

Lernen Sie das neue plattformübergreifende PowerShell kennen – https://aka.ms/pscore6

PS C:\WINDOWS\system32> pip intall bs4
ERROR: unknown command "intall" - maybe you meant "install"
PS C:\WINDOWS\system32> pip install bs4
Collecting bs4
  Downloading bs4-0.0.1.tar.gz (1.1 kB)
Requirement already satisfied: beautifulsoup4 in c:\program files\python37\lib\site-packages (from bs4) (4.8.2)
Requirement already satisfied: soupsieve>=1.2 in c:\program files\python37\lib\site-packages (from beautifulsoup4->bs4) (2.0)
Installing collected packages: bs4
    Running setup.py install for bs4 ... done
Successfully installed bs4-0.0.1
PS C:\WINDOWS\system32> pip install pandas
Collecting pandas
  Downloading pandas-1.0.3-cp37-cp37m-win_amd64.whl (8.7 MB)
     |████████████████████████████████| 8.7 MB 6.4 MB/s
Collecting pytz>=2017.2
  Downloading pytz-2019.3-py2.py3-none-any.whl (509 kB)
     |████████████████████████████████| 509 kB 6.4 MB/s
Collecting numpy>=1.13.3
  Downloading numpy-1.18.2-cp37-cp37m-win_amd64.whl (12.8 MB)
     |████████████████████████████████| 12.8 MB 6.8 MB/s
Collecting python-dateutil>=2.6.1
  Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
     |████████████████████████████████| 227 kB 3.3 MB/s
Requirement already satisfied: six>=1.5 in c:\users\foo_the_user\appdata\roaming\python\python37\site-packages (from python-dateutil>=2.6.1->pandas) (1.12.0)
Installing collected packages: pytz, numpy, python-dateutil, pandas
Successfully installed numpy-1.18.2 pandas-1.0.3 python-dateutil-2.8.1 pytz-2019.3
PS C:\WINDOWS\system32> pip install time
ERROR: Could not find a version that satisfies the requirement time (from versions: none)
ERROR: No matching distribution found for time
PS C:\WINDOWS\system32> pip install request
Collecting request
  Downloading request-2019.4.13.tar.gz (1.3 kB)
Collecting get
  Downloading get-2019.4.13.tar.gz (1.3 kB)
Collecting post
  Downloading post-2019.4.13.tar.gz (1.3 kB)
Requirement already satisfied: setuptools in c:\program files\python37\lib\site-packages (from request) (39.0.1)
Collecting query_string
  Downloading query-string-2019.4.13.tar.gz (1.6 kB)
Collecting public
  Downloading public-2019.4.13.tar.gz (2.3 kB)
Installing collected packages: public, query-string, get, post, request
    Running setup.py install for public ... done
    Running setup.py install for query-string ... done
    Running setup.py install for get ... done
    Running setup.py install for post ... done
    Running setup.py install for request ... done
Successfully installed get-2019.4.13 post-2019.4.13 public-2019.4.13 query-string-2019.4.13 request-2019.4.13
PS C:\WINDOWS\system32> pip install request

Soweit die aktuellen Fragen zur Win10 Kiste:


und zur Linux Kiste hier noch gleich die Frage: ich hab auf der MX-Linux 19.1 ein Python 3.7.3 soweit so gut.

root@mx:/home/martin# python3 --V
unknown option --V
usage: python3 [option] ... [-c cmd | -m mod | file | -] [arg] ...
Try `python -h' for more information.
root@mx:/home/martin# python3 -V
Python 3.7.3
root@mx:/home/martin# pip install pandas
bash: pip: command not found.


pit ist noch nicht drauf.


Wenn ich dort z.B. pandas installieren will, dann läuft das nicht.



pip install pandas

Ich könnte, so glaube ich nun anfangs mal pip installieren.

1) Find the package at PyPI - the Python Package Index .
2) Download the source code,
3) Read the INSTALL.txt or README.txt for clue on installation.
4) Usually installation is made of these steps
$ python setup.py build
$ python setup.py install



ferner hab ich noch gelesen - dass man auch EasyBuild zu Installationszwecken verwenden könnte:

If you do not have EasyBuild installed yet, or if you just want to install the most recent version of each of the EasyBuild packages, you can use one of the following simple commands:
using easy_install (old tool, but still works):
.....

Code: Alles auswählen

easy_install --prefix $HOME/EasyBuild easybuild


Note If we already have easybuild installed, we may need to instruct easy_install to install a newer version, using --upgrade or -U.
Aber es gilt offentsichtlich (dass man aufpassen muss):

using pip (more recent and better installation tool for Python software):

Code: Alles auswählen

 
pip install --install-option "--prefix=$HOME/EasyBuild" easybuild
The --prefix $HOME/EasyBuild part in these commands allows you to install EasyBuild without admin rights into $HOME/EasyBuild.

Note For pip v8.0 and newer,

Code: Alles auswählen

 pip install --prefix=$HOME/EasyBuild easybuild works too.


Frage: Was aber ist davon zu halten:
pip is already installed if you are using Python 2 >=2.7.9 or Python 3 >=3.4 downloaded from python.org or if you are working in a Virtual Environment created by virtualenv or pyvenv. Just make sure to upgrade pip.Installing with get-pip.py To install pip, securely download get-pip.py by following this link: get-pip.py. Alternatively, use curl:

Code: Alles auswählen

 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 

Then run the following command in the folder where you have downloaded get-pip.py:


Code: Alles auswählen

 python get-pip.py

Warning Be cautious if you are using a Python install that is managed by your operating system or another package manager. get-pip.py does not coordinate with those tools, and may leave your system in an inconsistent state.



Nun stellt sich für mich die Frage: wie kann ich hier installieren. Welche generellen Optionen habe ich.

- pandas oder andere Module mit oder ohne pip installieren.
- pip einfach mal installieren.
- eine einfache Methoder fürs generelle installieren wäre nicht schlecht
- wo sind hier Stolperfallen - auf was muss man achten.

- by the way - ist es ratsam immer als superuser zu arbeiten beim Installieren!?

Sorry - das ist nun etwas lange geworden - sorry es geht auch etwas durcheinander - aber da ich im Moment viel viel Zeit @home verbring habe ich Gelegenheit mich mit Python weiter zu befassen.
Und da packe ich Gelegenheit beim Schopf,

Viele Grüße u. allen noch einen schoenen Abend,

Say :D
say_hello
User
Beiträge: 20
Registriert: Sonntag 14. Oktober 2012, 12:33

Dienstag 24. März 2020, 00:28

guten Abend, ja die Corona-Auflagen machen es moeglich - da bleibt sehr viel Zeit auch für Recherche:

also - zu Panda: - hier auf Linux:

Code: Alles auswählen

sudo apt-get install python3-pandas
darüber hinaus:

For python3 use:

Code: Alles auswählen

sudo apt-get install python3-pandas
For python2 use:

Code: Alles auswählen

sudo apt-get install python-pandas
zu pip auf Linux (meiner Mx19-1)

cf: https://stackoverflow.com/questions/658 ... h-python-3

dit:
Manual installation and use of setuptools is not the standard process anymore.

If you're running Python 2.7.9+ or Python 3.4+
Congrats, you should already have pip installed. If you do not, read onward.

If you're running a Unix-like System
You can usually install the package for pip through your package manager if your version of Python is older than 2.7.9 or 3.4, or if your system did not include it for whatever reason.

Instructions for some of the more common distros follow.

Installing on Debian (Wheezy and newer) and Ubuntu (Trusty Tahr and newer) for Python 2.x
Run the following command from a terminal:

Code: Alles auswählen

sudo apt-get install python-pip 
Installing on Debian (Wheezy and newer) and Ubuntu (Trusty Tahr and newer) for Python 3.x
Run the following command from a terminal:

Code: Alles auswählen

sudo apt-get install python3-pip
oder auch: I was able to install pip for python 3 on Ubuntu just by running sudo apt-get install python3-pip.


by the way - alles was hier läuft - also mit sudo und so - ist immer als Superuser. Muss das so sein!?
say_hello
User
Beiträge: 20
Registriert: Sonntag 14. Oktober 2012, 12:33

Dienstag 24. März 2020, 16:37

hallo und guten Abend



also ich habe auf dem Linux-Rechner den ATOM-Editor installiert - und hier gab es gelegentliche Errormeldungen - eigentlich immer beim START des ATOM

Code: Alles auswählen

Unable to start the Python language server.
Make sure to install pyls 0.19 or newer by running:
python -m pip install 'python-language-server[all]'
habe dann diesen Befehl mal ausgeführt und diesen Language - Server installiert. Darüber hinaus habe ich auch

für Python 3 die folgenden Dinge noch instlaliert.

Code: Alles auswählen

python3-setuptools

apt-get install python3-setuptools python3-dev gcc g++

pip3 install csv
dann habe ich einen weiteren Test unternommen - hiermit:

Code: Alles auswählen

import csv
import requests
from bs4 import BeautifulSoup

url='http://www.mapsofindia.com/districts-india/'
response=requests.get(url)
html=response.content

soup=BeautifulSoup(html,'html.parser')
table=soup.find('table', attrs={'class':'tableizer-table'})
list_of_rows=[]
for row in table.findAll('tr')[1:]:
    list_of_cells=[]
    for cell in row.findAll('td'):
        list_of_cells.append(cell.text)
    list_of_rows.append(list_of_cells)
utfile=open('./immates.csv','w')
writer=csv.writer(outfile)
writer.writerow(["SNo", "States", "Dist", "Population"])
writer.writerows(list_of_rows)


Das Ergebnis ist folgendes:

Code: Alles auswählen

Traceback (most recent call last):
  File "/home/martin/.atom/python/examples/bs_mapsofindia.py", line 18, in <module>
    writer=csv.writer(outfile)
NameError: name 'outfile' is not defined
[Finished in 2.835s]
hmm - ich kann das heute Abend mal noch auf dem Windows 10 Rechner - mit PyCharm nachvollziehen - mal gucken was dort passiert.


Habt ihr eine IDEE was hier vorgeht - habe ich ggf. noch Probleme mit dem ATOM Editor!?


VG
say_hello
User
Beiträge: 20
Registriert: Sonntag 14. Oktober 2012, 12:33

Dienstag 24. März 2020, 17:25

hallo und guten Abend

vieleleicht macht es Sinn auf Docker zu setzen

https://jaxenter.de/einfuehrung-docker- ... iner-61528

Keine andere Technologie hat die IT in den letzten Jahren so geprägt wie Docker. Doch warum ist das so? Was macht Docker so besonders, wie funktioniert die Technologie unter der Haube und wie können Sie vom Trend profitieren? In unserem Grundkurs Docker lernen Sie anhand praktischer Beispiele, Docker und die Container-Technologie richtig einzusetzen.

Die Abbildung zeigt grob, wie die Docker Engine funktioniert: Sie befindet sich zwischen dem Betriebssytem (OS) und unseren Anwendungen. Docker Container basieren auf Linux, sodass ein Linux-Kernel nötig ist, um mit Docker zu arbeiten. Bei mir bildet ein MacBook Pro die lokale Umgebung; viele der Beispiele in diesem Buch laufen darauf in einer virtuellen Maschine, die ich mit Virtual Box betreibe.

Docker auf Ubuntu installieren
Dies ist eine interaktive Anleitung; neben der Lektüre können alle hier erklärten Arbeitsschritte direkt auch selbst mitgemacht werden. Darum beginnen wir damit, wie man Docker auf dem eigenen Laptop installiert. Auf Ubuntu geht es mit ein paar einfachen Schritten los; es gibt aber auch Implementierungen für andere Linux-Distributionen.


vieleleicht macht es Sinn auf Docker zu setzen - dann sollte / koennte ich mir alle benoetigen Dinge einmal zusammenstellen und auf versch. Rechern nutzen...
Benutzeravatar
__blackjack__
User
Beiträge: 7058
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Dienstag 24. März 2020, 20:13

@say_hello: Der Fehler im letzten Programm ist doch ziemlich deutlich. Der Name `outfile` ist nicht definiert. Warum glaubst Du er wäre es? Schau da noch mal *genau* hin.

Weitere Anmerkungen:

Um Gleicheitszeichen bei Zuweisungen ausserhalb von Argumentlisten und nach Kommas setzt man üblicherweise ein Leerzeichen. Das erhöht die Lesbarbkeit.

Auf Modulebene gehört nur Code der Konstanten, Funktionen, und Klassen definiert. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst.

Der Code geht einfach davon aus, dass die Webseite geladen wurde und es keinen HTTP-Fehlercode gab.

Die CSS-Klasse beim `find()` wurde auf die umständlichste Art angegeben in der man das machen kann. Erst einmal könnte man die explizite benennung des Arguments weg lassen. Und dann wird einfach eine Zeichenkette als zweites Argument bereits als Klasse interpretiert.

Namen von Grunddatentypen haben nichts im Namen zu suchen. `list_of_rows` wäre einfach nur `rows` und `list_of_cells` wäre im Grunde `row` — womit das dann mit `row` kollidiert das ein <tr>-Element repräsentiert. Da sollte man die Namen etwas spezialisieren. Ich gebe dann in der Regel den Namen für Objekte aus dem Objektbaum des HTML-Dokuments speziellere Namen.

Die Namen aus `bs4` die nicht den Python-Konventionen entsprechen, sollte man nicht mehr verwenden. Also nicht mehr `findAll()` sondern `find_all()`.

Für die innere ``for``-Schleife würde sich eine „list comprehension“ anbieten. Womit die äussere ``for``-Schleife so simpel wird, das man auch die als „list comprehension“ schreiben kann.

Dateien sollte man wo möglich mit der ``with``-Anweisung zusammen öffnen. Dann braucht man sie nicht mehr selbst schliessen, was in dem Code bisher nicht gemacht wird.

Beim öffnen von Textdateien sollte man immer eine explizite Kodierung angeben.

Das "./" beim Dateinamen ist überflüssig. Und beim Namen der Datei frage ich mich was der bedeuten soll. Das sieht wie ein falsch geschriebenes „inmates“ aus — ich weiss aber nicht ob Indien tatsächlich so schlimm ist das man alle Bewohner so bezeichnen sollte.

Zwischenstand (immer noch mit dem Ursprungsfehler):

Code: Alles auswählen

#!/usr/bin/env python3
import csv

import requests
from bs4 import BeautifulSoup


def main():
    response = requests.get("http://www.mapsofindia.com/districts-india/")
    response.raise_for_status()
    soup = BeautifulSoup(response.content, "html.parser")
    rows = [
        [cell_node.text for cell_node in row_node("td")]
        for row_node in soup.find("table", "tableizer-table")("tr")[1:]
    ]
    with open("./immates.csv", "w", encoding="utf-8") as utfile:
        writer = csv.writer(outfile)
        writer.writerow(["SNo", "States", "Dist", "Population"])
        writer.writerows(rows)


if __name__ == "__main__":
    main()
long long ago; /* in a galaxy far far away */
einfachTobi
User
Beiträge: 218
Registriert: Mittwoch 13. November 2019, 08:38

Mittwoch 25. März 2020, 06:58

tl dr
Grundsätzlich ist es sinnvoll unter Linux externe Module nur über den Paketmanager zu installieren. Damit sind sie für alle Programme verfügbar und der Manager kümmert sich um Updates etc. Noch besser wäre es für jedes Projekt eine venv zu nutzen (Google hilft). Dort kannste dann auch die Pakete üer pip installieren und hast für jedes Projekt einen "eingefrorenen", eigenen Stand der Module.
Ein Mischmasch aus vom Paketmanager, pip und manuell installierten Modulen sollte man eigentlich vermeiden.
paddie
User
Beiträge: 24
Registriert: Donnerstag 11. Oktober 2018, 18:09

Mittwoch 25. März 2020, 09:59

say_hello hat geschrieben:
Dienstag 24. März 2020, 00:28

by the way - alles was hier läuft - also mit sudo und so - ist immer als Superuser. Muss das so sein!?
Hi,

Ja, das muß so :wink:. Wenn du was auf dem laufenden System installieren willst mußt du natürlich root sein (oder um genau zu sein, die nötigen Rechte hierfür haben). Sonst könnte ja jeder dahergelaufene (l)user irgendwas installieren oder deinstallieren.

Wenn dir das sudo jedesmal natürlich zu viel Arbeit ist...kannst du natürlich auch einfach mit "su" eine root-session öffnen. HIER mußt du natürlich etwas besser aufpassen, was du tippst da es KEINE Rückfragen bei den Befehlen gibt (es gibt/gab wohl mal ein paar Distributionenen die für verschiedene Befehle aliase angelegt haben, die dann eine Rückfrage brachten). Also an der falschen Stelle ein "rm" und du hast ein Problem :wink: .

Oder halt, wie einfachTobi geschrieben hat...venv benutzen. Dann umgehst du das "Problem" und ein paar andere direkt. Zusätzlich kannst du bei Bedarf auch einfacher eine andere Version des gewünschten Pakets installieren, falls du es benötigst.
say_hello
User
Beiträge: 20
Registriert: Sonntag 14. Oktober 2012, 12:33

Freitag 27. März 2020, 15:37

hallo und guten Tag, einfach Tobi, Paddie und Blackjack


vielen Dank für die Antworten und die wertvollen Hinweise.
Danke für die allgem. Tipps von dir Blackjack - fürs Grundsätzliche. Und für die Einrichtung einer Entwicklungsumgebung - danke an Euch alle!

Jetzt mal abgesehen von den Dingen die ich bei den Skripten die ich oben erwähnt habe - ich gehe darauf wohl demnächst nochmals ein. Ich komme insgesamt weiter und werde die Einrichtung des Rechners jetzt nochmals weiter vorantreiben - und besser machen.

ihr empfehlt über pip hinaus eine venv einzurichten.. Das werde ich auch machen.
Grundsätzlich ist es sinnvoll unter Linux externe Module nur über den Paketmanager zu installieren. Damit sind sie für alle Programme verfügbar und der Manager kümmert sich um Updates etc.
Danke!
Noch besser wäre es für jedes Projekt eine venv zu nutzen (Google hilft). Dort kannste dann auch die Pakete üer pip installieren und hast für jedes Projekt einen "eingefrorenen", eigenen Stand der Module. Ein Mischmasch aus vom Paketmanager, pip und manuell installierten Modulen sollte man eigentlich vermeiden.
Danke - also du empfiehlst für jedes Projekt eine eigene venv zu verwenen und nicht mit dem eimal global installierten zu arbeiten.

ich habe übrigens neben ATOM jetzt VScodium auf dem MX-Linux installiert.

Code: Alles auswählen

Version: 1.43.2
Commit: 0ba0ca52957102ca3527cf479571617f0de6ed50
Date: 2020-03-24T21:03:16.125Z
Electron: 7.1.11
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Linux x64 4.19.0-6-amd64
by the way: ich hoffe dass ich hier im Grunde in VSCodium die ziemlich gleichen und identischen Möglichkeiten und Optionen habe wie andere die mit VScode arbeiten - ohne halt die Telemetrie-Geschichten die hier nicht inbegriffen sind.

Darüber hinaus: nun werde ich - obwohl bereits einiges global eingerichtet wurde einfach eine venv einrichten. By the way: die MX-Kiste wurde erst vor einer Woche aufgesetzt. Ich kanns insgsamt ja auch nochmals generell neu machen - diesmal von ANFANGAN mit einer venv...

so nämlich.
https://packaging.python.org/guides/ins ... ironments/

Installing packages using pip and virtual environments¶
This guide discusses how to install packages using pip and a virtual environment manager: either venv for Python 3 or virtualenv for Python 2. These are the lowest-level tools for managing Python packages and are recommended if higher-level tools do not suit your needs.

Linux and macOS
Debian and most other distributions include a python-pip package, if you want to use the Linux distribution-provided versions of pip see Installing pip/setuptools/wheel with Linux Package Managers.

You can also install pip yourself to ensure you have the latest version. It’s recommended to use the system pip to bootstrap a user installation of pip:

Code: Alles auswählen

python3 -m pip install --user --upgrade pip
Afterwards, you should have the newest pip installed in your user site:

Code: Alles auswählen

python3 -m pip --version
pip 9.0.1 from $HOME/.local/lib/python3.6/site-packages (python 3.6)
Installing virtualenv
Note If you are using Python 3.3 or newer, the venv module is the preferred way to create and manage virtual environments. venv is included in the Python standard library and requires no additional installation. If you are using venv, you may skip this section. virtualenv is used to manage Python packages for different projects. Using virtualenv allows you to avoid installing Python packages globally which could break system tools or other projects. You can install virtualenv using pip.

On macOS and Linux:

Code: Alles auswählen

python3 -m pip install --user virtualenv
und darübe hinaus:
To create a virtual environment, go to your project’s directory and run venv. If you are using Python 2, replace venv with virtualenv in the below commands.
On macOS and Linux:

vgl. https://dev.to/idrisrampurawala/setting ... scode-149p

Python applications will often use packages and modules that don't come as part of the standard library (i.e. by the above step). Applications will sometimes need a specific version of a library. It means that there might be multiple applications with different versions of python and/or modules required to run the application. Having one global version being used by all application will not suffice the needs.

The solution for this problem is to create a virtual environment, a self-contained directory tree that contains a Python installation for a particular version of Python, plus a number of additional packages. There are many python packages available for you to create virtual environment python such as virtualenv, pyenv, etc. I will be using virtualenv for this post.

Code: Alles auswählen

# installing virtual environment
$ pip install virtualenv
$ virtualenv --version
virtualenv 20.0.8
Until now, we have been installing everything globally. From now on we will be creating a virtual environment that will restrict the installation to that specific environment (folder).

Code: Alles auswählen

# creating a project folder
$ mkdir python-demo
# creating a virtual environment for this project
$ virtualenv python-demo
# this will create a virtual environment folder <python-demo> in the current folder
Once we have created a virtual environment, we need to make sure we install all other python packages for this project inside this project. This is done via activating virtual environment with the following command:


vgl. https://dev.to/idrisrampurawala/setting ... scode-149p

ich mach das mal - und ja. Ich hab noch ein zweites Notebook das frisch mit MX-Linux 19.1 eingerichtet ist - auf dem werde ich von auch - also von Anfang-an - mit Python venv arbeiten.


Euch vielen Dank für eure Beiträge und schon jetzt einen schoenen Einstieg ins Wochenende,

Say
Antworten