Python na serwerach w home.pl – moduły oraz wersje

Na serwerach w home.pl możesz korzystać z Python 2.7 oraz w przypadku CRONA również z Python 3.7

W przypadku skryptów uruchamianych z poziomu WEB stosowany jest zawsze Python 2.7.

W związku z powyższym w ramach mechanizmu CRON możesz zastosować dwa typy rozszerzeń: .py (Python w wersji 2.7) i .py3 (Python w wersji 3.7). Oznacza to, że pliki zakończone rozszerzeniem .py3 zostaną wykonane przez CRON z wykorzystaniem Python w wersji 3.7.

Natomiast za pośrednictwem SSH możesz wyświetlić moduły Python, które dostępne są na Twoim serwerze.

Jak przez SSH sprawdzić dostępne moduły Python na serwerze w home.pl?

  1. Połącz się ze swoim serwerem za pomocą SSH.
  2. Po wyświetleniu okna konsoli, skorzystaj z polecenia: python lub python2
  3. Następnie wpisz polecenie: help()
  4. Wpisz komendę: modules
  5. W oknie konsoli wyświetlone zostaną dostępne moduły Python na Twoim serwerze w home.pl.

Dostępne moduły Python na serwerach w home.pl

Pliki zakończone rozszerzeniem .py3 zostaną wykonane przez CRON z wykorzystaniem Python w wersji 3.7.

Crypto              avahi               imp                 queue
Cryptodome          base64              importlib           quopri
Milter              bcrypt              importlib_metadata  random
Namcap              bdb                 inspect             re
PIL                 binascii            invoke              readline
__future__          binhex              io                  reprlib
_abc                bisect              iotop               requests
_ast                botan2              ipaddr              resource
_asyncio            bottle              ipaddress           retrying
_bisect             btrfsutil           itertools           rlcompleter
_blake2             builtins            jinja2              runpy
_bootlocale         bz2                 json                salt
_bz2                cProfile            jsonschema          sched
_cffi_backend       cachecontrol        jwt                 secrets
_codecs             cached_property     keyword             select
_codecs_cn          calendar            ldap                selectors
_codecs_hk          cffi                ldapurl             semver
_codecs_iso2022     cgi                 ldb                 setuptools
_codecs_jp          cgitb               ldif                sh
_codecs_kr          chardet             lib2to3             shelve
_codecs_tw          chunk               libfuturize         shlex
_collections        cmath               libmount            shutil
_collections_abc    cmd                 libpasteurize       signal
_compat_pickle      code                libxml2             site
_compression        codecs              libxml2mod          six
_contextvars        codeop              linecache           slapdtest
_crypt              collections         lirc                smtpd
_csv                colorama            locale              smtplib
_ctypes             colorsys            lockfile            sndhdr
_ctypes_test        compileall          logging             socket
_curses             compose             lxml                socketserver
_curses_panel       conans              lzma                spwd
_datetime           concurrent          macpath             sqlalchemy
_dbm                configparser        mailbox             sqlite3
_decimal            contextlib          mailcap             sqlparse
_dummy_thread       contextvars         markerlib           sre_compile
_elementtree        copy                markupsafe          sre_constants
_ftdi1              copyreg             marshal             sre_parse
_functools          cpp                 math                ssl
_gdbm               cppcheck_junit      milter              stat
_hashlib            crypt               mime                statistics
_heapq              cryptography        mimetypes           string
_imp                csv                 mmap                stringprep
_io                 ctypes              modulefinder        struct
_json               curses              monotonic           subprocess
_ldap               cycler              more_itertools      sunau
_ldb_text           dataclasses         msgpack             symbol
_locale             datetime            multiprocessing     symtable
_lsprof             dateutil            nacl                sys
_lzma               dbm                 namcap              sysconfig
_markupbase         decimal             netrc               syslog
_md5                deprecation         nis                 tabnanny
_multibytecodec     difflib             nntplib             talloc
_multiprocessing    dis                 nose                tarfile
_opcode             distlib             nose_exclude        tdb
_operator           distro              ntpath              telnetlib
_osx_support        distutils           nturl2path          tempfile
_pickle             django              numbers             termios
_posixsubprocess    dns                 numpy               test
_py_abc             docker              olefile             tevent
_pydecimal          dockerpty           opcode              texttable
_pyio               dockerpycreds       operator            textwrap
_pyrsistent_version docopt              optparse            this
_queue              doctest             os                  threading
_random             drv_libxml2         ossaudiodev         time
_sha1               dummy_threading     packaging           timeit
_sha256             easy_install        paramiko            tkinter
_sha3               ecdsa               parser              token
_sha512             elftools            past                tokenize
_signal             email               patch_ng            tqdm
_sitebuiltins       encodings           pathlib             trace
_socket             ensurepip           pdb                 traceback
_sqlite3            enum                pep517              tracemalloc
_sre                errno               pickle              tty
_ssl                exitstatus          pickletools         turtle
_stat               fabfile             pip                 turtledemo
_string             fabric              pip2pkgbuild        types
_strptime           fasteners           pipes               typing
_struct             faulthandler        pkg_resources       unicodedata
_symtable           fcntl               pkgutil             unittest
_sysconfigdata_m_linux_x86_64-linux-gnu filecmp             platform            urllib
_tdb_text           fileinput           plistlib            urllib3
_testbuffer         fnmatch             pluginbase          uu
_testcapi           formatter           ply                 uuid
_testimportmultiple fractions           poplib              venv
_testmultiphase     ftdi1               posix               virtualenv
_tevent             ftplib              posixpath           virtualenv_support
_thread             functools           postgresql          warnings
_threading_local    future              pprint              wave
_tkinter            gc                  profile             weakref
_tracemalloc        gcovr               progress            webbrowser
_uuid               genericpath         pstats              webencodings
_warnings           getopt              pty                 websocket
_weakref            getpass             pvectorc            wheel
_weakrefset         gettext             pwd                 wsgiref
_xxtestfuzz         glob                py_compile          wtforms
_yaml               gluster             pyalpm              xcbgen
abc                 gnupg               pyaml               xdrlib
aifc                greenlet            pyasn1              xml
antigravity         grp                 pyasn1_modules      xmlrpc
appdirs             gzip                pyclbr              xxlimited
argparse            hashlib             pycman              xxsubtype
array               heapq               pycparser           yaml
arrow               hmac                pydoc               zipapp
asn1crypto          html                pydoc_data          zipfile
ast                 html5lib            pyexpat             zipimport
asynchat            http                pygments            zipp
asyncio             httpie              pymysql             zlib
asyncore            idlelib             pyparsing           zmq
atexit              idna                pyrsistent
attr                imaplib             pytoml
audioop             imghdr              pytz
W przypadku skryptów uruchamianych z poziomu WEB stosowany jest zawsze Python 2.7.

Crypto              arrow               inspect             requests
Namcap              asn1crypto          io                  resource
OleFileIO_PL        ast                 iotop               rlcompleter
PIL                 asynchat            ipaddress           runpy
__future__          asyncio             isc                 sane
_ast                asyncore            itertools           sched
_asyncio            atexit              jinja2              secrets
_bisect             audioop             json                select
_blake2             avahi               keyword             selectors
_bootlocale         base64              lib2to3             setuptools
_bz2                bdb                 libmount            sh
_cffi_backend       binascii            libxml2             shelve
_codecs             binhex              libxml2mod          shlex
_codecs_cn          bisect              linecache           shutil
_codecs_hk          builtins            locale              signal
_codecs_iso2022     bz2                 logging             site
_codecs_jp          cProfile            lxml                six
_codecs_kr          calendar            lzma                smtpd
_codecs_tw          cffi                macpath             smtplib
_collections        cgi                 macurl2path         sndhdr
_collections_abc    cgitb               mailbox             socket
_compat_pickle      chardet             mailcap             socketserver
_compression        chunk               markerlib           spwd
_crypt              cmath               markupsafe          sqlalchemy
_csv                cmd                 marshal             sqlite3
_ctypes             code                math                sre_compile
_ctypes_test        codecs              matplotlib          sre_constants
_curses             codeop              mimetypes           sre_parse
_curses_panel       collections         mmap                ssl
_datetime           colorsys            modulefinder        stat
_dbm                compileall          multiprocessing     statistics
_decimal            concurrent          namcap              string
_dummy_thread       configparser        netrc               stringprep
_elementtree        contextlib          nis                 struct
_ftdi1              copy                nntplib             subprocess
_functools          copyreg             nose                sunau
_gdbm               crypt               nose_exclude        symbol
_hashlib            cryptography        ntpath              symtable
_heapq              csv                 nturl2path          sys
_imp                ctypes              numbers             sysconfig
_io                 curses              numpy               syslog
_json               cycler              olefile             tabnanny
_locale             datetime            opcode              tarfile
_lsprof             dateutil            operator            telnetlib
_lzma               dbm                 optparse            tempfile
_markupbase         decimal             os                  termios
_md5                difflib             ossaudiodev         test
_multibytecodec     dis                 packaging           textwrap
_multiprocessing    distutils           paramiko            this
_opcode             django              parser              threading
_operator           doctest             pathlib             time
_osx_support        drv_libxml2         pdb                 timeit
_pickle             dummy_threading     pickle              tkinter
_posixsubprocess    easy_install        pickletools         token
_pydecimal          ecdsa               pip                 tokenize
_pyio               elftools            pip2pkgbuild        trace
_random             email               pipes               traceback
_sane               encodings           pkg_resources       tracemalloc
_sha1               ensurepip           pkgutil             tty
_sha256             enum                platform            turtle
_sha3               errno               plistlib            turtledemo
_sha512             faulthandler        ply                 types
_signal             fcntl               poplib              typing
_sitebuiltins       filecmp             posix               unicodedata
_socket             fileinput           posixpath           unittest
_sqlite3            fnmatch             postgresql          urllib
_sre                formatter           pprint              urllib3
_ssl                fractions           profile             uu
_stat               ftdi1               pstats              uuid
_string             ftplib              pty                 venv
_strptime           functools           pwd                 virtualenv
_struct             gc                  py_compile          virtualenv_support
_symtable           genericpath         pyalpm              warnings
_sysconfigdata_m_linux_x86_64-linux-gnu getopt              pyasn1              wave
_testbuffer         getpass             pyclbr              weakref
_testcapi           gettext             pycman              webbrowser
_testimportmultiple glob                pycparser           wheel
_testmultiphase     grp                 pydoc               wsgiref
_thread             gzip                pydoc_data          wtforms
_threading_local    hashlib             pyexpat             xcbgen
_tkinter            heapq               pygments            xdrlib
_tracemalloc        hmac                pylab               xml
_warnings           html                pymysql             xmlrpc
_weakref            http                pyparsing           xxlimited
_weakrefset         httpie              pytz                xxsubtype
abc                 idlelib             queue               zipapp
aifc                idna                quopri              zipfile
antigravity         imaplib             random              zipimport
appdirs             imghdr              re                  zlib
argparse            imp                 readline            
array               importlib           reprlib

Jak uruchamiać Pythona z poziomu skryptów bash oraz PHP?

W przypadku PHP należy dodać przed wywołaniem wiersz:

putenv("HOME=/");

Przykładowo:

putenv("HOME=/");
exec('python nazwa_skryptu.py);

W powyższym przykładowym kodzie możesz dodatkowo skorzystać z dwóch poleceń:

  • python spowoduje użycie Python w wersji 3.6
  • python2 spowoduje uzycie Python w wersji 2.7
W przypadku skryptów bash należy dodać przed wywołaniem wiersz:
export HOME="/"

Przykładowo:

export HOME="/"
/usr/share/subversion/hook-scripts/mailer/mailer.py

Jak sprawdzić wersję Pythona, z której został odpalony skrypt?

Aby sprawdzić wersję Pythona, z której został odpalony skrypt:

  1. Utwórz nowy plik z rozszerzeniem .py, w którym umieścisz skrypt:
    • dla Python 3
      #!/usr/bin/python
      import sys
      print("Content-Type: text/html")     # HTML
      print("")                            # pusta linia
      print("Witaj w swiecie Pythona")
      print(sys.version)
    • dla Python 2
      #!/usr/bin/python2
      import sys
      print("Content-Type: text/html")     # HTML
      print("")                            # pusta linia
      print("Witaj w swiecie Pythona")
      print(sys.version)
      Ważne! Kodowanie znaków końca linii w pliku musi być w formacie Unix (LF = Line Feed). Skrypt nie uruchomi się przy kodowaniu znaków końca linii w formacie Windows (CR LF = Carriage Return + Line Feed). Konwersję znaku końca linii można wykonać w edytorze programistycznym.
  2. Wyślij plik na serwer FTP. Plik ze skryptem musi mieć uprawnienia do odczytu i uruchamiania 755 lub wyższe.
  3. Po wywołaniu tego pliku z poziomu przeglądarki internetowej, na ekranie zostanie wyświetlona wersja Pythona, która została użyta do wykonania skryptu.
  • Czy artykuł był pomocny ?
  • Tak   Nie