Windows 10の環境変数を汚さずにPythonとJuliaを導入してJupyter notebookで使えるようにする

はじめに

環境変数を汚さないやり方でPythonとJuliaをJupyterで使える環境を構築した.方法としてはPowerShellを起動して,そこからpythonjuliaを呼び出せるようにする. 環境変数を汚しても問題はないかもしれない

PowerShellで.bachrcみたいなことをする

Windows環境変数PythonやJuliaのPATHを追加しないので,PowerShellを起動したときに環境変数を設定するようにする. PowerShell起動時に読み込まれるファイルのパスはprofileという変数に入っている.まずはecho $profileでファイルの場所を確認する.

PS C:\Users\[ユーザ名]\Desktop> echo $profile
C:\Users\[ユーザ名]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

どうやらC:\Users\[ユーザ名]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1という場所にあるらしい.

PowerShellスクリプトを実行可能にする

起動時に読み込まれるPowerShellスクリプトの場所が分かったが,デフォルトの設定では実行されない.スクリプトが実行されないという設定になっているためだ. 実行ポリシーを確認し,Restrictedになっていたら$profileは実行できない.

PS C:\Users\[ユーザ名]> Get-ExecutionPolicy
Restricted

なので,ポリシーを変更する. マシンに影響を及ぼさずにプロセス単位でスクリプトの実行を許可する方法がある.

PowerShellを起動するショートカットを作成し,リンク先の部分に引数を指定する.

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned

f:id:soyukke:20190622152357j:plain:w300
PowerShellショートカットのプロパティ

環境変数を追加方法

環境変数$ENV:Pathに入っている.

echo $ENV:Path

+=で文字列を追加できるので,$profileに書き込んでいけばよい.

$profileを編集する

$profileファイルを編集していく.Windowsに最初から入っているnotepadで編集するにはこうする.

> notepad $profile

あとはこんな感じで必要なパスを追加する文を$profileに記述して保存するのみ.

$ENV:Path += "[パス]" + ";"

$profileはこんな感じにした.

# VS Code
$ENV:Path += "C:\Users\[ユーザ名]\AppData\Local\Programs\Microsoft VS Code\" + ";"
# Julia-1.1.0
$ENV:Path += "C:\Users\[ユーザ名]\AppData\Local\Julia-1.1.0\bin" + ";"
# Python
$ENV:Path += "C:\Users\[ユーザ名]\AppData\Local\Programs\Python\Python37" + ";"
$ENV:Path += "C:\Users\[ユーザ名]\AppData\Local\Programs\Python\Python37\Scripts" 

これでショートカットからPowerShellを起動すれば,JuliaやPythonを呼び出すことができるようになった.

Pythonのインストール

64bit版のPython 3.7.3をインストールした.Anacondaはあきらめた.1

Windows x86-64 executable installer

Pathは追加せずに全部デフォルトのままインストール.

# Python
$ENV:Path += "C:\Users\[ユーザ名]\AppData\Local\Programs\Python\Python37" + ";"
$ENV:Path += "C:\Users\[ユーザ名]\AppData\Local\Programs\Python\Python37\Scripts" + ";"

pipするときは管理者権限でPowershellを起動する.

デフォルトでPythonがインストールされている場所は管理者権限がいるので仕方がない.

jupyter notebook

pip install jupyter

問題なく使える.

jupyter notebook

Juliaのインストール

https://julialang.org/

ダウンロードしてインストール.

追加するパス

$ENV:Path += "C:\Users\[ユーザ名]\AppData\Local\Julia-1.1.0\bin" + ";"

Jupyter notebookでJuliaを使う

まず,jupyterのパスが通っていることを確認.jupyter notebookjupyterを使える状態ならばOK

pkg> add IJulia
julia> using IJulia

もしjupyterのパスが通っていなければ,Minicondaをインストールか問われるので注意.

おしまい

参考

PowerShellのExecutionPolicyのスコープとかについて詳しく - Qiita


  1. conda init powershellをするとパスがよくわからないことになってpythonすら起動できなくなった.