Ich habe eine Software namens "Polynote" wie Jupyter Notebook installiert, die sowohl Scala als auch Python gleichzeitig verwenden kann.
Anstatt Python- und Scala-Notizen zu machen, können Sie Python und Scala in einer Note mischen!
Polynote offizielle Website Polynote | The polyglot Scala notebook
Einführungsartikel zu Polynote Netflix’s Polynote is a New Open Source Framework to Build Better Data Science Notebooks | by Jesus Rodriguez | DataSeries | Aug, 2020 | Medium
Installationsverfahren
Installieren Sie Python3. Diesmal habe ich 3.8.1 mit pyenv installiert.
Wenn ich Python normal mit pyenv installiert habe, ist bei der Installation von Polynote selbst der folgende Fehler in pip install -r. / Requirements.txt
aufgetreten. Es scheint, dass das Erstellen des Pakets "jep", von dem Polynote abhängt, fehlschlägt.
/usr/bin/ld: /home/xxxx/.pyenv/versions/3.8.1/lib/libpython3.8.a(floatobject.o): relocation R_X86_64_PC32 against symbol `PyFloat_Type' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
Ich verstehe den Grund nicht, aber ich konnte den Fehler vermeiden, indem ich ihn mit der folgenden Option an pyenv installierte.
$ PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install -v --force 3.8.1
Installieren Sie Java 11.
Offizielle Dokumentation besagt, dass Java 8 und 11 unterstützt, aber 11 ist gut.
Zuerst bin ich um 8 gelaufen. Obwohl es startet, erhalte ich viele Fehlermeldungen sowohl in der Befehlszeile als auch im Browser, insbesondere das Sammlungsframework von Scala ist nutzlos. AbstractMethodError
und NullPointerException
treten häufig auf.
$ wget 'https://github.com/polynote/polynote/releases/download/0.3.11/polynote-dist.tar.gz'
$ tar xvzf polynote-dist.tar.gz
$ cd polynote
$ pip install -r ./requirements.txt
Installieren Sie das Paket wie Sie möchten.
$ pip install matplotlib
$ python ./polynote.py
[INFO] Loading configuration from config.yml
[INFO] Loaded configuration: PolynoteConfig(Listen(8192,127.0.0.1),KernelConfig(None,None),Storage(tmp,notebooks,Map(),Wal(false)),List(),List(),Map(),None,Behavior(true,Always,List()),Security(None,None),UI(/),Credentials(None),Map(),StaticConfig(None,None))
[WARN] Polynote allows arbitrary remote code execution, which is necessary for a notebook tool to function.
| While we'll try to improve safety by adding security measures, it will never be completely safe to
| run Polynote on your personal computer. For example:
|
| - It's possible that other websites you visit could use Polynote as an attack vector. Browsing the web
| while running Polynote is unsafe.
| - It's possible that remote attackers could use Polynote as an attack vector. Running Polynote on a
| computer that's accessible from the internet is unsafe.
| - Even running Polynote inside a container doesn't guarantee safety, as there will always be
| privilege escalation and container escape vulnerabilities which an attacker could leverage.
|
| Please be diligent about checking for new releases, as they could contain fixes for critical security
| flaws.
|
| Please be mindful of the security issues that Polynote causes; consult your company's security team
| before running Polynote. You are solely responsible for any breach, loss, or damage caused by running
| this software insecurely.
[INFO]
| _____ _ _
| | __ \ | | | |
| | |__) |__ | |_ _ _ __ ___ | |_ ___
| | ___/ _ \| | | | | '_ \ / _ \| __/ _ \
| | | | (_) | | |_| | | | | (_) | || __/
| |_| \___/|_|\__, |_| |_|\___/ \__\___|
| __/ |
| |___/
|
[INFO] Polynote version 0.3.11
[INFO] Server listening on http://localhost:8192/
Wenn Sie mit einem Browser auf Port 8192 zugreifen, sieht der Bildschirm etwas anders aus als das Jupyter-Notizbuch, und Sie können Notizen erstellen.
Das Folgende ist ein Ausführungsbeispiel. Sie können Python und Scala mischen.
Recommended Posts