ImJoy Plugin Engine for running Python plugins locally or remotely from ImJoy.io
Project description
ImJoy Plugin Engine
The plugin engine used for running python plugins in ImJoy (https://imjoy.io).
This library is mainly based on jupyter notebook server, with additional libraries and convenient settings.
Installation
-
If you don't have a conda environment, download and install Miniconda with Python 3.7 (or Anaconda with Python 3.7 if you prefer a full installation).
-
Start a Terminal(Mac and Linux) or Anaconda Prompt(Windows), then run the following command:
pip install -U imjoy[jupyter]
The above command will also install jupyter notebook and imjoy-elfinder.
- If you encountered any error related to
gitorpip, try to run :conda install -y git pipbefore the above command. (Otherwise, please check FAQs.)
Usage
To use it after the installation:
-
Run
imjoy --jupytercommand in a Terminal or Anaconda Prompt, and keep the window running. You will get a link that looks likehttp://localhost:8888/?token=caac2d7f2e8e0...ad871fefrom the terminal, please copy it for the next step. -
Go to https://imjoy.io, click the 🚀 icon located in the upper-right corner, select
Add Jupyter-Engineand paste the link you got previously, and connect to the plugin engine. Once connected, you can start to run python plugins through the plugin engine.
Please note that if you are trying to use the ImJoy Plugin Engine running on a remote server, please use the ImJoy web App served on your server (http://YOUR_REMOTE_IP:9527) instead of https://imjoy.io. This is because most browsers do not allow a web application served through https to connect to an unsecured server (your remote server). Alternatively, you can use a proxy to enable https for the plugin engine. Then you will be able to use it with https://imjoy.io.
Connecting to a ImJoy Engine Server
import webbrowser
from imjoy_rpc import connect_to_server, launch_plugin
def new_client_join(ws):
viewer = await ws.createWindow(src="https://kaibu.org")
async def main():
api = await connect_to_server(server_url="https://api.imjoy.io/")
api.on('join', new_client_join)
tk = await api.generate_token()
name = api.config['name']
token = tk['token']
url = f"https://imjoy.io/lite?server_url=https://api.imjoy.io&token={token}&name={name}"
print(url)
webbrowser.open(url)
More details and FAQs in Docs
Roadmap
You can track the progress of the project here: https://github.com/imjoy-team/ImJoy/projects/2
Issues
Please submit your bug report or feature request to ImJoy/issues
Development
- We use
blackfor code formatting.
git clone git@github.com:imjoy-team/ImJoy-Engine.git
# Enter directory.
cd ImJoy-Engine
# Install all development requirements and package in development mode.
pip3 install -r requirements_dev.txt
- Run
toxto run all tests and lint, including checking thatblackdoesn't change any files.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file imjoy-0.11.20.tar.gz.
File metadata
- Download URL: imjoy-0.11.20.tar.gz
- Upload date:
- Size: 55.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6160fba89a5e0df4d9265aaee0be7e123be1e7e4abd00a4ea510cf50081ca813
|
|
| MD5 |
7c53255ff161c8d8c7fce93eca87c09f
|
|
| BLAKE2b-256 |
55cca266629345beb1793fc7b6d6ae0e289c73cccc92bf96dcf615523a643f4d
|
File details
Details for the file imjoy-0.11.20-py3-none-any.whl.
File metadata
- Download URL: imjoy-0.11.20-py3-none-any.whl
- Upload date:
- Size: 66.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82158bc6ce38ccc4beeed3edf093f824762ac6a847ac1bdae573b9f446877e42
|
|
| MD5 |
e91c930a0e35370e29ed0a5bae888e9f
|
|
| BLAKE2b-256 |
93ef93d4018e405677bb464c52d1ca838a7dea03d1e0b2d75cd9fe77c81ab67d
|