twosigma / beakerx

Beaker Extensions for Jupyter Notebook
http://BeakerX.com
Apache License 2.0
2.8k stars 381 forks source link

Julia 0.4.6 not detected by Beaker #4405

Closed switch527 closed 7 years ago

switch527 commented 8 years ago

I have been working on this issue for a while now and I can;t come up with anything. I changed prefs, I uninstalled and reinstalled, I tried to see if the julia.js still needed editing but I can't come up with a fix. I am using the electron version on Windows 7 64bit and my prefs file is as follows:

{ "autocomplete-parameters" : "true", "pref-format" : "1", "allow-anonymous-usage-tracking" : false, "languages" : { "IPython" : { "path" : "/Users/scollins/Anaconda2" }, "Python3" : { "path" : "/Users/scollins/Anaconda2/envs/py35" }, "R" : { "path" : "/Users/scollins/R/bin/x64" }, "Java" : { "path" : "/Users/scollins/Java/bin" }, "Julia" : { "path" : "/Users/scollins/Julia-0.4.6/bin" } }, "edit-mode" : "default", "advanced-mode" : false, "theme" : "default" }

please help

scottdraves commented 8 years ago

thanks for the report. you don't need to put julia into your prefs file like that, since it is started with IPython. if you run the regular Anaconda installer it should have put itself into your path. Are you sure you need

"IPython" : {
"path" : "/Users/scollins/Anaconda2"
},

then from a shell, you should be able to just run "ipython notebook". do you get jupyter and is julia in the list of supported languages?

switch527 commented 8 years ago

Without having the string for IPython it doesn't fire up unfortunately. I have jupyter and everything is accessible from there and the julia kernel starts and everything

scottdraves commented 8 years ago

how are you starting beaker? do you do a "source activate" or something similar before you run jupyter?

switch527 commented 8 years ago

I have shortcuts set up on the task bar for both breaker and jupyter and I run each from those. I am not running any commands or anything prior to starting each interface.

scottdraves commented 8 years ago

OK. Beaker expects that the path to IPython was added to the system path. the anaconda installer normally does this. I think your best bet is to do that. If you don't want to do that, then try adding it as the path for Julia. Adding /Users/scollins/Julia-0.4.6/bin is useless, beaker does not directly use the stuff in there. Here's how it starts julia: https://github.com/twosigma/beaker-notebook/blob/master/plugin/ipythonPlugins/src/dist/julia/juliaPluginStart.py#L21 it just runs jupyter. also, you should run beaker from a cmd shell or powershell so you can see any errors produced. without errors, debugging is impossible.

switch527 commented 8 years ago

Ok I'll give that a shot as soon as I get back to my computer in the morning. I definitely appreciate all of the timely help!

scottdraves commented 8 years ago

i just tested that version of julia on my mac and it ran but it did have an error in autotranslation: https://github.com/twosigma/beaker-notebook/issues/4410

switch527 commented 8 years ago

So after a fresh install of Anaconda I still need the IPython string in the config file. The Anaconda folder is in the system path but IPython itself is not, is that something I should add to the path manually? Its just very odd because I had this working with almost no effort on my previous computer, they must have changed what gets registered to the path with the newer Anaconda installer or something. Also, I just fired it up and when I start beaker from cmd and start Julia it says IPython is missing:

Julia-stderr> from IPython import start_ipython Julia-stderr>ImportError: No module named IPython Done starting Julia Warning: Caught NPE of unknown origin. electron

scottdraves commented 8 years ago

great, that's progress. it looks like the ipython that's getting run doesn't have the required packages available. what output do you get from "conda list"?

Also what exact version of Anaconda are you installing? I used and have v3, maybe v4 is not compatible.

switch527 commented 8 years ago

Sorry this has taken so long to get back to you. Went away on business and totally forgot until I got back and Julia still didn't lol. I am using the latest Anaconda, 4.0 I believe and conda list gives me

C:\Users\scollins>conda list

packages in environment at C:\Users\scollins\Anaconda2:

# alabaster 0.7.8 py27_0 anaconda 4.0.0 np110py27_0 anaconda-client 1.4.0 py27_0 anaconda-navigator 1.2.1 py27_0 argcomplete 1.0.0 py27_1 astropy 1.2.1 np111py27_0 babel 2.3.3 py27_0 backports 1.0 py27_0 backports_abc 0.4 py27_0 beautifulsoup4 4.4.1 py27_0 bitarray 0.8.1 py27_1 blaze 0.10.1 py27_0 bokeh 0.12.0 py27_0 boto 2.40.0 py27_0 bottleneck 1.1.0 np111py27_0 bzip2 1.0.6 vc9_3 [vc9] cdecimal 2.3 py27_2 cffi 1.6.0 py27_0 chest 0.2.3 py27_0 click 6.6 py27_0 cloudpickle 0.2.1 py27_0 clyent 1.2.2 py27_0 colorama 0.3.7 py27_0 comtypes 1.1.2 py27_0 conda 4.1.7 py27_0 conda-build 1.21.3 py27_0 conda-env 2.5.1 py27_0 conda-manager 0.4.0 py27_0 configobj 5.0.6 py27_0 configparser 3.5.0b2 py27_1 console_shortcut 0.1.1 py27_1 contextlib2 0.5.3 py27_0 cryptography 1.4 py27_0 curl 7.49.0 vc9_0 [vc9] cycler 0.10.0 py27_0 cython 0.24 py27_0 cytoolz 0.8.0 py27_0 dask 0.10.0 py27_0 datashape 0.5.2 py27_0 decorator 4.0.10 py27_0 dill 0.2.5 py27_0 docutils 0.12 py27_2 entrypoints 0.2.2 py27_0 enum34 1.1.6 py27_0 et_xmlfile 1.0.1 py27_0 fastcache 1.0.2 py27_1 flask 0.11.1 py27_0 flask-cors 2.1.2 py27_0 freetype 2.5.5 vc9_1 [vc9] funcsigs 1.0.2 py27_0 functools32 3.2.3.2 py27_0 futures 3.0.5 py27_0 get_terminal_size 1.0.0 py27_0 gevent 1.1.1 py27_0 greenlet 0.4.10 py27_0 grin 1.2.1 py27_3 h5py 2.6.0 np111py27_0 hdf5 1.8.15.1 vc9_4 [vc9] heapdict 1.0.0 py27_1 idna 2.1 py27_0 imagesize 0.7.1 py27_0 ipaddress 1.0.16 py27_0 ipykernel 4.3.1 py27_0 ipyparallel 5.1.0 py27_0 ipython 4.2.0 py27_0 ipython_genutils 0.1.0 py27_0 ipywidgets 4.1.1 py27_0 itsdangerous 0.24 py27_0 jdcal 1.2 py27_1 jedi 0.9.0 py27_1 jinja2 2.8 py27_1 jpeg 8d vc9_0 [vc9] jsonschema 2.5.1 py27_0 jupyter 1.0.0 py27_3 jupyter_client 4.3.0 py27_0 jupyter_console 4.1.1 py27_0 jupyter_core 4.1.0 py27_0 libpng 1.6.22 vc9_0 [vc9] libsodium 1.0.3 0 libtiff 4.0.6 vc9_2 [vc9] llvmlite 0.11.0 py27_0 locket 0.2.0 py27_1 lxml 3.6.0 py27_0 markupsafe 0.23 py27_2 matplotlib 1.5.1 np111py27_0 menuinst 1.4.1 py27_0 mistune 0.7.2 py27_0 mkl 11.3.3 1 mkl-service 1.1.2 py27_2 mpmath 0.19 py27_1 multipledispatch 0.4.8 py27_0 nbconvert 4.2.0 py27_0 nbformat 4.0.1 py27_0 networkx 1.11 py27_0 nltk 3.2.1 py27_0 nose 1.3.7 py27_1 notebook 4.2.1 py27_0 numba 0.26.0 np111py27_0 numexpr 2.6.0 np111py27_0 numpy 1.11.1 py27_0 odo 0.5.0 py27_0 openpyxl 2.3.2 py27_0 openssl 1.0.2h vc9_0 [vc9] pandas 0.18.1 np111py27_0 pandasql 0.7.3 pandasql 0.7.3 py27_0 partd 0.3.4 py27_0 patch 2.5.9 1 path.py 8.2.1 py27_0 pathlib2 2.1.0 py27_0 patsy 0.4.1 py27_0 pep8 1.7.0 py27_0 pickleshare 0.7.2 py27_0 pillow 3.2.0 py27_1 pip 8.1.2 py27_0 ply 3.8 py27_0 psutil 4.3.0 py27_0 py 1.4.31 py27_0 pyasn1 0.1.9 py27_0 pycosat 0.6.1 py27_1 pycparser 2.14 py27_1 pycrypto 2.6.1 py27_4 pyflakes 1.2.3 py27_0 pygments 2.1.3 py27_0 pyodbc 3.0.10 py27_0 pyopenssl 0.16.0 py27_0 pyparsing 2.1.4 py27_0 pyqt 4.11.4 py27_6 pyreadline 2.1 py27_0 pysqldf 1.2.3 pytables 3.2.2 np111py27_4 pytest 2.9.2 py27_0 python 2.7.12 0 python-dateutil 2.5.3 py27_0 pytz 2016.4 py27_0 pywin32 220 py27_1 pyyaml 3.11 py27_4 pyzmq 15.2.0 py27_0 qt 4.8.7 vc9_8 [vc9] qtawesome 0.3.3 py27_0 qtconsole 4.2.1 py27_0 qtpy 1.0.2 py27_0 requests 2.10.0 py27_0 rope 0.9.4 py27_1 ruamel_yaml 0.11.7 py27_0 scikit-image 0.12.3 np111py27_1 scikit-learn 0.17.1 np111py27_1 scipy 0.17.1 np111py27_1 setuptools 23.0.0 py27_0 simplegeneric 0.8.1 py27_1 singledispatch 3.4.0.3 py27_0 sip 4.16.9 py27_2 six 1.10.0 py27_0 snowballstemmer 1.2.1 py27_0 sockjs-tornado 1.0.3 py27_0 sphinx 1.4.1 py27_0 sphinx_rtd_theme 0.1.9 py27_0 spyder 2.3.9 py27_0 sqlalchemy 1.0.13 py27_0 ssl_match_hostname 3.4.0.2 py27_1 statsmodels 0.6.1 np111py27_1 sympy 1.0 py27_0 tk 8.5.18 vc9_0 [vc9] toolz 0.8.0 py27_0 tornado 4.3 py27_1 tqdm 4.7.6 traitlets 4.2.1 py27_0 unicodecsv 0.14.1 py27_0 vs2008_runtime 9.00.30729.1 2 vs2010_runtime 10.00.40219.1 2 werkzeug 0.11.10 py27_0 wheel 0.29.0 py27_0 xlrd 1.0.0 py27_0 xlsxwriter 0.9.2 py27_0 xlwings 0.7.2 py27_0 xlwt 1.1.2 py27_0 zlib 1.2.8 vc9_3 [vc9]

C:\Users\scollins>

scottdraves commented 8 years ago

no worries -- and please paste your beaker prefs file here as well.

switch527 commented 8 years ago

Can do. I removed the Julia line that I had in there prior

{ "autocomplete-parameters" : "true", "pref-format" : "1", "allow-anonymous-usage-tracking" : false, "languages" : { "IPython" : { "path" : "/Users/scollins/Anaconda2" }, "Python3" : { "path" : "/Users/scollins/Anaconda2/envs/py35" }, "R" : { "path" : "/Users/scollins/R/bin/x64" }, "Java" : { "path" : "/Users/scollins/Java/bin" } }, "edit-mode" : "emacs", "advanced-mode" : false, "theme" : "ambiance" }

scottdraves commented 8 years ago

OK, now put in the same path you used for IPython in for Julia, then does it start? What error appears in the terminal?

switch527 commented 8 years ago

It get closer than ever before but it throws a new error message

[Window Title] julia initialization failed

[Content] ERROR: LoadError: LoadError: Failed to precompile Requests to C:\Users\scollins.julia\lib\v0.4\Requests.ji while loading C:\Program Files (x86)\Beaker\resources\dist\config\plugins\eval\ipythonPlugins\julia\beaker.jl, in expression starting on line 18 while loading In[1], in expression starting on line 1

[OK]

and then CMD Prompt shows:

Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\scollins>cd C:\Program Files (x86)\Beaker

C:\Program Files (x86)\Beaker>beaker.exe

C:\Program Files (x86)\Beaker> (electron) companyName is now a required option to crashReporter.start Using port 32326 for main thread IPC

C:\Program Files (x86)\Beaker\resources\dist>REM

C:\Program Files (x86)\Beaker\resources\dist>REM Copyright 2014 TWO SIGMA OPEN S OURCE, LLC

C:\Program Files (x86)\Beaker\resources\dist>REM

C:\Program Files (x86)\Beaker\resources\dist>REM Licensed under the Apache Licen se, Version 2.0 (the "License");

C:\Program Files (x86)\Beaker\resources\dist>REM you may not use this file excep t in compliance with the License.

C:\Program Files (x86)\Beaker\resources\dist>REM You may obtain a copy of the Li cense at

C:\Program Files (x86)\Beaker\resources\dist>REM

C:\Program Files (x86)\Beaker\resources\dist>REM http://www.apache.org/li censes/LICENSE-2.0

C:\Program Files (x86)\Beaker\resources\dist>REM

C:\Program Files (x86)\Beaker\resources\dist>REM Unless required by applicable l aw or agreed to in writing, software

C:\Program Files (x86)\Beaker\resources\dist>REM distributed under the License i s distributed on an "AS IS" BASIS,

C:\Program Files (x86)\Beaker\resources\dist>REM WITHOUT WARRANTIES OR CONDITION S OF ANY KIND, either express or implied.

C:\Program Files (x86)\Beaker\resources\dist>REM See the License for the specifi c language governing permissions and

C:\Program Files (x86)\Beaker\resources\dist>REM limitations under the License.

starting nginx instance (C:\Program Files (x86)\Beaker\resources\dist/nginx)

Beaker hash b7c81a9 Beaker listening on http://127.0.0.1:8801/ note: probing until backend is ready, an error here is normal

Running 0: C:\Program Files (x86)\Beaker\resources\dist\python\python 1: C:\Program Files (x86)\Beaker\resources\dist/config/plugins/eval/ipythonPlugi ns/julia/juliaPlugin 2: 8804 Done starting Julia Julia-stderr>[TerminalIPythonApp] WARNING | Subcommand ipython notebook is dep recated and will be removed in future versions. Julia-stderr>[TerminalIPythonApp] WARNING | You likely want to use jupyter note book in the future Julia-stderr>[I 16:19:04.913 NotebookApp] Serving notebooks from local directory : C:\Program Files (x86)\Beaker\resources\dist Julia-stderr>[I 16:19:04.913 NotebookApp] 0 active kernels Julia-stderr>[I 16:19:04.913 NotebookApp] The Jupyter Notebook is running at: ht tp://127.0.0.1:8804/ Julia-stderr>[I 16:19:04.913 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). Julia-stderr>[I 16:19:05.257 NotebookApp] 302 GET /login (127.0.0.1) 3.00ms Julia-stderr>[I 16:19:05.306 NotebookApp] 302 POST /login?next=%2F (127.0.0.1) 1 .00ms Julia-stderr>[I 16:19:05.505 NotebookApp] Kernel started: e86f7c24-5202-4bdb-adb 0-84e897634357 Julia-stdout>Starting kernel event loops.

switch527 commented 8 years ago

I've tried a few other things but I am still getting this error. Could this be an issue with the new version of Anaconda or Julia?

scottdraves commented 8 years ago

Hi sorry, this is the relevant error:

ERROR: LoadError: LoadError: Failed to precompile Requests to C:\Users\scollins.julia\lib\v0.4\Requests.ji
while loading C:\Program Files (x86)\Beaker\resources\dist\config\plugins\eval\ipythonPlugins\julia\beaker.jl, in expression starting on line 18
while loading In[1], in expression starting on line 1

So basically Beaker's runtime is saying "using Requests" and Julia is failing to load this package. Sounds like a Julia bug. What happens if you run Julia with its normal cmd line interface and issue this line?

scottdraves commented 8 years ago

https://github.com/twosigma/beaker-notebook/blob/master/plugin/ipythonPlugins/src/dist/julia/beaker.jl#L18

scottdraves commented 7 years ago

we are up to v0.5 anyway...