Jeszcze sprawa wygląda następująco:
Zarówno Perl jak i Python wymagają dostępu do roota, bo jak masz jakąś egzotyczną bibliotekę to musisz zaimportować.
W Pythonie jest to pip
.
I teraz tak - na niektórych serwerach nie można nic instalować i ściągać, bo jest bardzo rygorystyczna polityka bezpieczeństwa (securing policy).
Natomiast sys-admini wolą Perl, a więc ma on więcej bibliotek ściągniętych i skonfigurowanych.
reasumując - nie zawsze możesz sobie wybrać język, bo nie zawsze masz roota na serwerze, a import bibliotek jest akurat niemożliwy. Można zrobić coś typu ls /usr/lib/python2.7
(czyli posprawdzać co akurat jest zaimportowane i co można użyć), a czasami pracować w /tmp/
lub /home/$USER
.
przykład lokalny (nie z serwera):
~ % ls /usr/lib/python3.5
abc.py config-3.5m-x86_64-linux-gnu __future__.py macpath.py posixpath.py smtplib.py threading.py
aifc.py configparser.py genericpath.py macurl2path.py pprint.py sndhdr.py timeit.py
antigravity.py contextlib.py getopt.py mailbox.py profile.py socket.py tkinter
argparse.py copy.py getpass.py mailcap.py pstats.py socketserver.py tokenize.py
ast.py copyreg.py gettext.py _markupbase.py pty.py sqlite3 token.py
asynchat.py cProfile.py glob.py mimetypes.py __pycache__ sre_compile.py traceback.py
asyncio crypt.py gzip.py modulefinder.py pyclbr.py sre_constants.py tracemalloc.py
asyncore.py csv.py hashlib.py multiprocessing py_compile.py sre_parse.py trace.py
base64.py ctypes heapq.py netrc.py _pydecimal.py ssl.py tty.py
bdb.py curses hmac.py nntplib.py pydoc_data statistics.py turtle.py
binhex.py datetime.py html ntpath.py pydoc.py stat.py types.py
bisect.py dbm http nturl2path.py _pyio.py stringprep.py typing.py
_bootlocale.py decimal.py idlelib numbers.py queue.py string.py unittest
bz2.py difflib.py imaplib.py opcode.py quopri.py _strptime.py urllib
calendar.py dis.py imghdr.py dbm http nturl2path.py _pyio.py stringprep.py typing.py
_bootlocale.py decimal.py idlelib numbers.py queue.py string.py unittest
bz2.py difflib.py imaplib.py opcode.py quopri.py _strptime.py urllib
calendar.py dis.py imghdr.py
... czyli jak rozumiem mogę tylko używać tych rzeczy - bo te moduły są już zaimportowane - ale jakby coś z zewnątrz to już trzeba uprawnienia ;)
Nie znam standardowego API Pythona, ale chyba sprawdzę co potrafi ;)