J'ai installé un logiciel appelé "Polynote" comme Jupyter Notebook qui peut utiliser à la fois Scala et Python en même temps.
Au lieu de prendre des notes Python et des notes Scala, vous pouvez mélanger Python et Scala en une seule note!
Site officiel de Polynote Polynote | The polyglot Scala notebook
Article d'introduction sur Polynote Netflix’s Polynote is a New Open Source Framework to Build Better Data Science Notebooks | by Jesus Rodriguez | DataSeries | Aug, 2020 | Medium
Procédure d'installation
Installez Python3. Cette fois, j'ai installé 3.8.1 avec pyenv.
Lorsque j'ai installé Python normalement avec pyenv, l'erreur suivante s'est produite dans pip install -r. / Requirements.txt
lors de l'installation de Polynote lui-même. Il semble que la construction du paquet jep
dont Polynote dépend échoue.
/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
Je ne comprends pas la raison, mais j'ai pu éviter l'erreur en installant avec l'option attachée à pyenv comme suit.
$ PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install -v --force 3.8.1
Installez Java 11.
La documentation officielle indique que Java prend en charge 8 et 11, mais 11 est bon.
Au début, j'ai couru à 8 ans. Cependant, bien que cela commence, je reçois beaucoup de messages d'erreur à la fois sur la ligne de commande et sur le navigateur, en particulier le framework de collecte de Scala est inutile. ʻAbstractMethodErroret
NullPointerException` sont fréquents.
$ 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
Installez le package comme vous le souhaitez.
$ 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/
Si vous accédez au port 8192 avec un navigateur, l'écran sera un peu différent de celui du bloc-notes Jupyter et vous pourrez créer des notes.
Voici un exemple d'exécution. Vous pouvez mélanger Python et Scala.
Recommended Posts