Windows10環境にchocolateyでpyenvをインストールしてPythonをインストールする
以下のWindows10環境にPyTorchをインストールしたい。Python自体も、ROS Noeticを以前インストールしたときに一緒にインストールしただけなので、chocolateyでpyenvをインストールして、pyenvからPythonをインストールしたい。chocolatelyは以前ROS Noeticをインストールした時にインストール済み。
machine specs:
- CPU: Intel Core i5-10400F
- RAM: 32GB
- GPU: RTX2060 SUPER 8GB
- Windows10 Home 20H2(build19042.928)
PS C:\Users\yosuke> choco search pyenv
Chocolatey v0.10.15
2 validations performed. 1 success(es), 1 warning(s), and 0 error(s).
Validation Warnings:
- A pending system reboot request has been detected, however, this is
being ignored due to the current command being used 'search'.
It is recommended that you reboot at your earliest convenience.
pyenv-win 2.64.3 [Approved]
vscode-python 2021.3.680753044 [Approved]
2 packages found.
PS C:\Users\yosuke> choco install pyenv-win
Chocolatey v0.10.15
2 validations performed. 1 success(es), 1 warning(s), and 0 error(s).
Validation Warnings:
- A pending system reboot request has been detected, however, this is
being ignored due to the current Chocolatey configuration. If you
want to halt when this occurs, then either set the global feature
using:
choco feature enable -name=exitOnRebootDetected
or pass the option --exit-when-reboot-detected.
Chocolatey detected you are not running from an elevated command shell
(cmd/powershell).
You may experience errors - many functions/packages
require admin rights. Only advanced users should run choco w/out an
elevated shell. When you open the command shell, you should ensure
that you do so with "Run as Administrator" selected. If you are
attempting to use Chocolatey in a non-administrator setting, you
must select a different location other than the default install
location. See
https://chocolatey.org/install#non-administrative-install for details.
Do you want to continue?([Y]es/[N]o): N
PS C:\Users\yosuke>
PSはWindows Terminal上で起動した。ユーザー権限のPowerShellだとダメだったっけ。あとpending system reboot
という警告が出てるなあ。
Restart-Computer
を実行するとpending system reboot解消(抑制)されたとあるので、試してみる。
PS C:\Users\yosuke> Restart-Computer
Restart-Computer : コンピューター XXXX を再起動できませんでした。エラー メッセージは次のとおりです。他のユー
ザーがコンピューターにログオンしているため、システムのシャットダウンを開始できません。。
むう。。
-Forceパラメータをつけてやればどうでしょう。
つけてみたら、再起動できた!
再起動後、pending restartの警告も出なくなった。今まで何度もPC再起動してたつもりだったけど、ちゃんと再起動されてなかったのかな。。
PS C:\Users\yosuke> choco search pyenv
Chocolatey v0.10.15
pyenv-win 2.64.3 [Approved]
vscode-python 2021.3.680753044 [Approved]
2 packages found.
PS C:\Users\yosuke>
次はこっちの対処。
Chocolatey detected you are not running from an elevated command shell
(cmd/powershell).
ROS Noeticをインストールした時に参照したページに書いてある手順を真似しよう。
When launching the new Windows terminal, please remember to Run as Administrator, by right clicking on the Windows Terminal and Select Run as Administrator.
以降の作業は、明記してなければすべてWindows Terminal(WT)上のPowerShell(PS)で行う。
pyenv-win
のインストールは成功したけど、refreshenvした後にpyenv
と入力しても、コマンドが認識されない。
PS C:\Users\yosuke> choco install pyenv-win
Chocolatey v0.10.15
pyenv-win
Progress: Downloading pyenv-win 2.64.3... 100%
pyenv-win v2.64.3 [Approved]
pyenv-win package files install completed. Performing other installation steps.
The package pyenv-win wants to run 'chocolateyInstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): Y
Attempt to use original download file name failed for 'C:\ProgramData\chocolatey\lib\pyenv-win\tools/pyenv-win.zip'.
Copying pyenv-win
from 'C:\ProgramData\chocolatey\lib\pyenv-win\tools/pyenv-win.zip'
Hashes match.
Extracting C:\Users\yosuke\AppData\Local\Temp\chocolatey\pyenv-win\2.64.3\pyenv-winInstall.zip to C:\Users\yosuke\.pyenv\...
C:\Users\yosuke\.pyenv\
PATH environment variable does not have %USERPROFILE%\.pyenv\pyenv-win\bin in it. Adding...
PATH environment variable does not have %USERPROFILE%\.pyenv\pyenv-win\shims in it. Adding...
Environment Vars (like PATH) have changed. Close/reopen your shell to
see the changes (or in powershell/cmd.exe just type `refreshenv`).
The install of pyenv-win was successful.
Software installed to 'C:\Users\yosuke\.pyenv\'
Chocolatey installed 1/1 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
PS C:\Users\yosuke> RefreshEnv
Refreshing environment variables from registry for cmd.exe. Please wait...Finished..
PS C:\Users\yosuke> pyenv
pyenv : 用語 'pyenv' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されませ
ん。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してくだ
さい。
発生場所 行:1 文字:1
+ pyenv
+ ~~~~~
+ FullyQualifiedErrorId : CommandNotFoundException
pyenv-winのGitHubを参照する。
Close and reopen your terminal app and run pyenv --version
結局、Windows Terminal自体を起動しなおさないとpyenv
コマンドは認識されなかった。そういうもの?
NOTE: If you are running Windows 10 1905 or newer, you might need to disable the built-in Python launcher via Start > "Manage App Execution Aliases" and turning off the "App Installer" aliases for Python
日本語だと「アプリ実行エイリアス」だった。
によると、2021/4/4現在のWindows10用Pythonの最新安定版は3.9.3。
一方、pyenvでインストールできる最新安定版は3.8.2。
pyenv 2.64.3
PS C:\Users\yosuke> pyenv install -l
:: [Info] :: Mirror: https://www.python.org/ftp/python
2.4-win32
2.4.1-win32
2.4.2-win32
2.4.3c1-win32
2.4.3-win32
2.4.4-win32
(...snip...)
3.8.2
3.9.0a1-win32
3.9.0a1
3.9.0a2-win32
3.9.0a2
3.9.0a3-win32
3.9.0a3
3.9.0a4-win32
3.9.0a4
Update the list of discoverable Python versions using: pyenv update
PS C:\Users\yosuke> pyenv update
:: [Info] :: Mirror: https://www.python.org/ftp/python
:: [Info] :: Scanned 147 pages and found 495 installers.
PS C:\Users\yosuke> pyenv install -l
:: [Info] :: Mirror: https://www.python.org/ftp/python
2.4-win32
2.4.1-win32
(...snip...)
3.9.2
3.9.3-win32
3.9.3
3.10.0a1-win32
3.10.0a1
3.10.0a2-win32
3.10.0a2
3.10.0a3-win32
3.10.0a3
3.10.0a4-win32
3.10.0a4
3.10.0a5-win32
3.10.0a5
3.10.0a6-win32
3.10.0a6
PS C:\Users\yosuke>
OK!
PS C:\Users\yosuke\shared\work\voxelpose> pyenv local 3.9.3
PS C:\Users\yosuke\shared\work\voxelpose> python
python : 用語 'python' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認して
から、再試行してください。
発生場所 行:1 文字:1
+ python
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (python:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\yosuke\shared\work\voxelpose>
ん?
WT自体を再起動してみたけど、状況変わらないな。。
PS C:\Users\yosuke\shared\work\voxelpose> pyenv version
3.9.3 (set by C:\Users\yosuke\shared\work\voxelpose\.python-version)
PS C:\Users\yosuke\shared\work\voxelpose> python
python : 用語 'python' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認して
から、再試行してください。
発生場所 行:1 文字:1
+ python
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (python:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\yosuke\shared\work\voxelpose> python3
python3 : 用語 'python3' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認
してから、再試行してください。
発生場所 行:1 文字:1
+ python3
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (python3:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\yosuke\shared\work\voxelpose>
pyenv rehash
を実行してないからだった。。
PS C:\Users\yosuke\shared\work\voxelpose> pyenv rehash
PS C:\Users\yosuke\shared\work\voxelpose> python
Python 3.9.3 (tags/v3.9.3:e723086, Apr 2 2021, 11:35:20) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
pip
をアップデート。パス通ってない的な警告出たけど、ちゃんとアップデートされたバージョンで起動できている。
PS C:\Users\yosuke\shared\work\voxelpose> python -m pip --version
pip 20.2.3 from C:\Users\yosuke\.pyenv\pyenv-win\versions\3.9.3\lib\site-packages\pip (python 3.9)
PS C:\Users\yosuke\shared\work\voxelpose> python -m pip install -U pip
Collecting pip
Downloading pip-21.0.1-py3-none-any.whl (1.5 MB)
|████████████████████████████████| 1.5 MB 6.8 MB/s
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 20.2.3
Uninstalling pip-20.2.3:
Successfully uninstalled pip-20.2.3
WARNING: The scripts pip.exe, pip3.9.exe and pip3.exe are installed in 'C:\Users\yosuke\.pyenv\pyenv-win\versions\3.9.3\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-21.0.1
PS C:\Users\yosuke\shared\work\voxelpose> python -m pip --version
pip 21.0.1 from C:\Users\yosuke\.pyenv\pyenv-win\versions\3.9.3\lib\site-packages\pip (python 3.9)
PS C:\Users\yosuke\shared\work\voxelpose>
venv
環境を作る。
PS C:\Users\yosuke\shared\work\voxelpose> python -m venv .venv-3.9.3
PS C:\Users\yosuke\shared\work\voxelpose> .\.venv-3.9.3\Scripts\Activate.ps1
.\.venv-3.9.3\Scripts\Activate.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\yosuke\shared\work\voxelpose\.venv-3.9.3
\Scripts\Activate.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170)
を参照してください。
発生場所 行:1 文字:1
+ .\.venv-3.9.3\Scripts\Activate.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS C:\Users\yosuke\shared\work\voxelpose> .\.venv-3.9.3\Scripts\activate
.\.venv-3.9.3\Scripts\activate : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\yosuke\shared\work\voxelpose\.venv-3.9.3\Scr
ipts\Activate.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照し
てください。
発生場所 行:1 文字:1
+ .\.venv-3.9.3\Scripts\activate
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS C:\Users\yosuke\shared\work\voxelpose>
ふむ。
virtualenvだけのために設定を変えたくないという人は、対策1のコマンドに-Scope Processオプションを付けて、「今開いているPowerShellウィンドウのみ実行ポリシーを変更」にするのがオススメです。この場合はPowerShellに管理者権限は必要ないです。
Set-ExecutionPolicy RemoteSigned -Scope Process
毎回ダイアログが出るのが面倒なら-forceオプションで省略できます。
いけた。すでに管理者権限つきでPSを起動してたので、確認ダイアログは出なかった。
PS C:\Users\yosuke\shared\work\voxelpose> get-ExecutionPolicy
Restricted
PS C:\Users\yosuke\shared\work\voxelpose> Set-ExecutionPolicy RemoteSigned -Scope Process
PS C:\Users\yosuke\shared\work\voxelpose> get-ExecutionPolicy
RemoteSigned
PS C:\Users\yosuke\shared\work\voxelpose> .\.venv-3.9.3\Scripts\Activate.ps1
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose>
venv上のpipを最新にアップデート。これでPyTorchをインストールする準備完了かな。。
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose> python --version
Python 3.9.3
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose> python -m pip --version
pip 20.2.3 from C:\Users\yosuke\shared\work\voxelpose\.venv-3.9.3\lib\site-packages\pip (python 3.9)
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose> python -m pip install -U pip
Collecting pip
Using cached pip-21.0.1-py3-none-any.whl (1.5 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 20.2.3
Uninstalling pip-20.2.3:
Successfully uninstalled pip-20.2.3
Successfully installed pip-21.0.1
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose> python -m pip --version
pip 21.0.1 from C:\Users\yosuke\shared\work\voxelpose\.venv-3.9.3\lib\site-packages\pip (python 3.9)
(.venv-3.9.3) PS C:\Users\yosuke\shared\work\voxelpose>