-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
43 lines (37 loc) · 1.93 KB
/
setup.py
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
32
33
34
35
36
37
38
39
40
41
42
43
import importlib
import subprocess
import os
def install(listOfRequirkePackagesNameImport: list, listOfRequirePackagesNameDownload: list):
"""
install check if the required packages are already installed. If not it will install them.
:param listOfRequirkePackagesNameImport: The names for required imports
:param listOfRequirePackagesNameDownload: The names for the required installs
"""
length = len(listOfRequirkePackagesNameImport)
for i in range(length):
try:
importlib.import_module(listOfRequirkePackagesNameImport[i])
print(listOfRequirkePackagesNameImport[i] + " ist bereits installiert!")
except ImportError as e:
print(listOfRequirkePackagesNameImport[i] + " ist nicht installiert und muss nach installiert werden!")
if os.name == 'nt':
subprocess.call(['pip', 'install', listOfRequirePackagesNameDownload[i]])
else:
subprocess.call(['pip3', 'install', listOfRequirePackagesNameDownload[i]])
import nltk
try:
path = nltk.data.find('corpora/stopwords')
print("Stopwords gefunden")
except LookupError as e:
print("Stopwords nicht gefunden. Diese müssen nach installiert werden.")
nltk.download('stopwords')
try:
path = nltk.data.find('tokenizers/punkt')
print("Tokenizer gefunden")
except LookupError as e:
print("Tokenizer nicht gefunden. Diese müssen nach installiert werden.")
nltk.download('punkt')
if __name__ == '__main__':
listOfRequirkePackagesNameImport = ["PyQt5", "nltk", "sqlalchemy", "scrapy", "langdetect", "pdfminer", "bs4", "docx", "pptx"]
listOfRequirePackagesNameDownload = ["PyQt5", "NLTK", "sqlalchemy", "scrapy", "langdetect", "pdfminer.six", "bs4", "python-docx", "python-pptx"]
install(listOfRequirkePackagesNameImport, listOfRequirePackagesNameDownload)