Change install procedure

This commit is contained in:
Brendan Rius 2017-08-10 17:00:32 +02:00
parent 45616068bc
commit c08039f6ad
5 changed files with 89 additions and 20 deletions

View File

@ -3,13 +3,13 @@ MAINTAINER Brendan Rius <ping@brendan-rius.com>
USER root
RUN mkdir /jupyter
WORKDIR /jupyter
WORKDIR /tmp
COPY ./ jupyter_c_kernel/
RUN pip install -e jupyter_c_kernel/
RUN jupyter-kernelspec install jupyter_c_kernel/c_spec/
RUN pip install --no-cache-dir -e jupyter_c_kernel/
RUN cd jupyter_c_kernel && python -m jupyter_c_kernel.install_c_kernel --user
WORKDIR /home/$NB_USER/
USER $NB_USER

View File

@ -16,9 +16,7 @@
### Step-by-step:
* `pip install jupyter-c-kernel`
* `git clone https://github.com/brendan-rius/jupyter-c-kernel.git`
* `cd jupyter-c-kernel`
* `jupyter-kernelspec install c_spec/`
* `install_c_kernel`
* `jupyter-notebook`. Enjoy!
### Easy installation for Unix user:

View File

@ -1,11 +0,0 @@
{
"argv": [
"python3",
"-m",
"jupyter_c_kernel",
"-f",
"{connection_file}"
],
"display_name": "C",
"language": "c"
}

View File

@ -0,0 +1,81 @@
#!/usr/bin/env python
import json
import os
import sys
import argparse
from jupyter_client.kernelspec import KernelSpecManager
from IPython.utils.tempdir import TemporaryDirectory
kernel_json = {
"argv": [
"python3",
"-m",
"jupyter_c_kernel",
"-f",
"{connection_file}"
],
"display_name": "C",
"language": "c"
}
def install_my_kernel_spec(user=True, prefix=None):
with TemporaryDirectory() as td:
os.chmod(td, 0o755) # Starts off as 700, not user readable
with open(os.path.join(td, 'kernel.json'), 'w') as f:
json.dump(kernel_json, f, sort_keys=True)
# TODO: Copy resources once they're specified
print('Installing IPython kernel spec')
KernelSpecManager().install_kernel_spec(td, 'bash', user=user, replace=True, prefix=prefix)
def _is_root():
try:
return os.geteuid() == 0
except AttributeError:
return False # assume not an admin on non-Unix platforms
def main(argv=[]):
parser = argparse.ArgumentParser(
description='Install KernelSpec for C Kernel'
)
prefix_locations = parser.add_mutually_exclusive_group()
prefix_locations.add_argument(
'--user',
help='Install KernelSpec in user homedirectory',
action='store_false' if _is_root() else 'store_true'
)
prefix_locations.add_argument(
'--sys-prefix',
help='Install KernelSpec in sys.prefix. Useful in conda / virtualenv',
action='store_true',
dest='sys_prefix'
)
prefix_locations.add_argument(
'--prefix',
help='Install KernelSpec in this prefix',
default=None
)
args = parser.parse_args()
if args.sys_prefix:
prefix = sys.prefix
user = None
elif args.user:
prefix = None
user = True
else:
prefix = args.prefix
user = None
install_my_kernel_spec(user=user, prefix=prefix)
if __name__ == '__main__':
main(argv=sys.argv)

View File

@ -8,5 +8,6 @@ setup(name='jupyter_c_kernel',
url='https://github.com/brendanrius/jupyter-c-kernel/',
download_url='https://github.com/brendanrius/jupyter-c-kernel/tarball/1.1.0',
packages=['jupyter_c_kernel'],
keywords=['jupyter', 'kernel', 'c']
scripts=['jupyter_c_kernel/install_c_kernel'],
keywords=['jupyter', 'notebook', 'kernel', 'c']
)