Closed17

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という警告が出てるなあ。

PS C:\Users\yosuke> Restart-Computer
Restart-Computer : コンピューター XXXX を再起動できませんでした。エラー メッセージは次のとおりです。他のユー
ザーがコンピューターにログオンしているため、システムのシャットダウンを開始できません。。

むう。。

https://social.technet.microsoft.com/Forums/ja-JP/682e3731-361d-43b6-94a0-b46678683839/restartcomputer?forum=powershellja

-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をインストールした時に参照したページに書いてある手順を真似しよう。

http://wiki.ros.org/noetic/Installation/Windows

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を参照する。

https://github.com/pyenv-win/pyenv-win

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

日本語だと「アプリ実行エイリアス」だった。

https://www.python.org/downloads/
によると、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>

ふむ。

https://qiita.com/ryu22e/items/520b35db6a444d8289da

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>
このスクラップは6ヶ月前にクローズされました
ログインするとコメントできます