gopherdata / gophernotes

The Go kernel for Jupyter notebooks and nteract.
MIT License
3.86k stars 263 forks source link

[Question] How to import third-party packages on Windows? #243

Open lekeeith opened 2 years ago

lekeeith commented 2 years ago

error writing file "C:\Users\smile\go\src\github.com\gopherdata\gophernotes\imports/thirdparty/gonum_org_v1_gonum_mat.go": open C:\Users\smile\go\src\github.com\gopherdata\gophernotes\imports/thirdparty/gonum_org_v1_gonum_mat.go: The system cannot find the path specified.

it is visiable to find the error is come from path, but i do not konw how to solve it. image

cosmos72 commented 2 years ago

The procedure to import third-party packages on Windows is somewhat tedious, and requires compiling gophernotes twice.

Here it is, in its full length:

  1. manually download gophernotes inside GOPATH, compile and install it. The commands to enter at Windows command prompt (cmd) are:
set GOPATH=%USERPROFILE%\go
mkdir "%GOPATH%\src\github.com\gopherdata"
cd "%GOPATH%\src\github.com\gopherdata"
git clone https://github.com/gopherdata/gophernotes
cd gophernotes
go install .

You need to use these exact paths, because that's what gophernotes expects at step 4 below.

  1. configure jupyter notebook to find gophernotes as described at https://github.com/gopherdata/gophernotes/#windows i.e. execute the commands

    mkdir "%APPDATA%\jupyter\kernels\gophernotes"
    xcopy "%GOPATH%\src\github.com\gopherdata\gophernotes\kernel" "%APPDATA%\jupyter\kernels\gophernotes" /s

    then edit the file %APPDATA%\jupyter\kernels\gophernotes\kernel.json replacing the string "gophernotes" with the full path of gophernotes executable, surrounded by double quotes, as for example "C:\Users\PUT_YOUR_USERNAME_HERE\go\bin\gophernotes"

  2. Start jupyter notebook (I am assuming it's already installed), typically by executing the command

    jupyter notebook

    and create a new Go notebook with New > Go

  3. At gophernotes prompt, import all the third-party packages you need. For example:

    import (
    "gonum.org/v1/gonum/mat"
    "gonum.org/v1/gonum/floats"
    )

    for each import, you will get a message saying that a file has been created inside C:\Users\PUT_YOUR_USERNAME_HERE\go\src\github.com\gopherdata\gophernotes and that you need to recompile gophernotes.

Don't quit jupyter notebook yet: first, enter all the import statements you need.

Only after you have typed all the import statements (and got a similar message for each, saying that you need to recompile gophernotes), quit jupiter notebook.

  1. Recompile gophernotes with the commands:
set GOPATH=%USERPROFILE%\go
cd "%GOPATH%\src\github.com\gopherdata\gophernotes"
go install .
  1. Start again jupyter notebook, and create a new Go notebook with New > Go

  2. Import again the same third-party packages as in step 4. This time gophernotes will find them.

Final note: you need to repeat steps 4,5,6 and 7 each time you want to import third-party packages. Pretty tedious, but there's currently no other solution.