mieki256's diary



2022/08/08(月) [n年前の日記]

#1 [python] Windows10 + virtualenvでPython環境を作成

昨日、Ubuntu Linux 22.04 LTS 上で virtualenv を使って Python 3.8 環境を作成したのだけど。

_virtualenvでPythonの別バージョン環境を作成 - mieki256's diary

Windows10上でも同じことができるのか試してみた。

環境は、Windows10 x64 21H2 + Python 3.9.13 + Python 3.8.10。

最初は venv を使って環境を作ろうとしたのだけど、何故か pip が利用できない環境ができてしまったので、代わりに virtualenv ならどうだろうと試してみた次第。

DOS窓を開いて以下を打つ。

virtualenvのインストール。
pych 38-64

python -m pip install -U setuptools virtualenv virtualenvwrapper-win
or
pip install virtualenv virtualenvwrapper-win setuptools -U
> virtualenv --version
virtualenv 20.16.3 from C:\Python\Python38-64\Lib\site-packages\virtualenv\__init__.py

環境作成 / 有効化 / 無効化。
virtualenv -p python3.8 env38
.\env38\Scripts\activate
deactivate

ただ、環境を作成した直後は、pip が正常動作しなかった。一旦DOS窓を終了して、再度開いてから試したら、何故か pip が動作した…。 *1

pip -V と打ってみて、仮想環境ディレクトリ内のパスが表示されていることを確認。もし、違うパスが表示されていたら、正常に切り替えることができていない。
> .\env38\Scripts\activate

> pip -V
pip 22.2.2 from D:\...\venv_test\env38\lib\site-packages\pip (python 3.8)

pip を使って、作業に必要なモジュールをインストールしていく。今回は、pygame 1.9.6、pywin32 (win32gui)、exe化ツールを使いたい。
pip install pygame==1.9.6
pip install pywin32
pip install py2exe
pip install pyinstaller
> pip list
Package                   Version
------------------------- ---------
altgraph                  0.17.2
cachetools                5.2.0
future                    0.18.2
pefile                    2022.5.30
pip                       22.2.2
py2exe                    0.11.1.1
pygame                    1.9.6
pyinstaller               5.3
pyinstaller-hooks-contrib 2022.8
pywin32                   304
pywin32-ctypes            0.2.0
setuptools                63.4.1
wheel                     0.37.1

必要なパッケージをインストールできた。

先日作成した、tkinterのウインドウ内に pygameウインドウを埋め込むスクリプト、01_embed_pygamewindow.py を使って動作確認。

_01_embed_pygamewindow.py
python 01_embed_pygamewindow.py

正常に動作した。このスクリプトは、pygame 1.x.x じゃないと動かないので、pygame 1.9.6 が使えていることが分かった。―― Python 3.9 には pygame 2.1.2 をインストールしてあるので、そちらが使われていたらこのスクリプトは正常動作しないはず。

virtualenvwrapper-winを使う。 :

Linux上では virtualenv を使いやすくするためのツール、virtualenvwrapper が存在するけれど。Windowsに移植した virtualenvwrapper-win というツールが存在するらしい。試用してみた。
pip install virtualenvwrapper-win -U
  • mkvirtualenv <name> : 環境作成
  • lsvirtualenv : 一覧表示
  • rmvirtualenv <name> : 環境削除
  • workon [<name>] : 環境を有効化
  • deactivate : 環境を無効化

デフォルトでは、C:\Users\USERNAME\Envs\ 以下に各環境(ディレクトリ)が作成される。環境変数 WORKON_HOME を設定しておけば場所を変更できる。

問題無く動作したけれど…。ただ、自分が把握できてないフォルダ内で、色々なファイルが増えていくのはちょっと引っ掛かるので、virtualenv だけ使って作業したいなと思えてきた。virtualenvwrapper-win はアンインストールした。
pip uninstall virtualenvwrapper-win

参考ページ。 :

venvも試用してみた。 :

Python 3.3以降は、virtualenv と似た機能を持つ venv というツールが同梱されている。

Windows10 x64 21H2 + Python 3.9.13 + Python 3.8.10 の環境で、デフォルトでパスが通してある Python 3.9.13 から venv を使った場合は、問題無く pip が利用できた。

しかし、Python 3.8 + venv で環境を作ると、pip が見つからないと表示されてしまう…。

色々試してたら原因が分かった。自作の Pythonバージョン切替batファイル、pych.bat を使って Python 3.8 に切り替えるとおかしな動作になる。

py.exe 経由で venv を使えば、Python 3.9 と同様に pip を利用できる環境を作成できた。
py -3.8 -m venv myenv38

myenv38\Scripts\activate

(myenv38) ... > python -V
Python 3.8.10

(myenv38) ... > python -m pip -V
pip 21.1.1 from D:\home\prg\python\_test_sample\pygame\venv_test\myenv38\lib\site-packages\pip (python 3.8)

deactivate
  • py -3.8 -m venv myenv38 : Python 3.8 を利用して、venv で myenv38 と名前で環境を作成。
  • myenv38\Scripts\activate : 環境を有効化。
  • python -V : Python のバージョンを表示。
  • python -m pip -V : pip のバージョンと、pip が置いてある場所を表示。
  • deactivate : 環境を無効化。

自作のPython切替bat。 :

一応、自作の、Python切替batファイルも置いておく。今回のように、時々問題が発生するけど…。

_pych.bat
@echo off

@rem 各Pythonは、C:\Python\PythonXX\ にインストールされてることが前提。
@rem XXの部分を指定して PATH を切り替えてる。

if "%1"=="39-64" goto SETPATH
if "%1"=="38-64" goto SETPATH
if "%1"=="27" goto SETPATH
if "%1"=="26" goto SETPATH
if "%1"=="25" goto SETPATH
if "%1"=="24" goto SETPATH

echo Pythonのパスを切替えます。
echo Usage:  
echo     pych 39-64 (default)
echo     pych 38-64
echo     pych 27
echo     pych 26
echo     pych 25
echo     pych 24
goto END

:SETPATH
set PPATH=C:\Python\Python%1
goto SETPATHCOMMON

:SETPATHCOMMON
@rem set PATH=%PPATH%;%PPATH%\Scripts;%PPATH%\Lib\site-packages\PyQt4;%PATH%
set PATH=%PPATH%;%PPATH%\Scripts;%PATH%

set PYTHONPATH=%PPATH%\Lib\site-packages
set PYTHON_ROOT=%PPATH%

@rem ftype Python.CompiledFile=%PPATH%\python.exe "%%1" %%*
@rem ftype python.file=%PPATH%\\python.exe "%%1" %%*
@rem ftype Python.NoConFile=%PPATH%\pythonw.exe "%%1" %%*

echo.
echo Pythonのパスを %PPATH% に設定しました
echo PYTHONPATH=%PYTHONPATH%
echo PYTHON_ROOT=%PYTHON_ROOT%
echo.
:END

Windows版のPythonなら py.exe がインストールされているだろうから、そちらを使ったほうがいいと思う。
> py --list
Installed Pythons found by py Launcher for Windows
 -3.9-64 *
 -3.8-64
 -2.7-32
 -2.6-32
 -2.5-32
 -2.4-32


> py -2.4 -V
Python 2.4.4

> py -2.7 -V
Python 2.7.18

> py -3.9 -V
Python 3.9.13

*1: もしかすると、自前のPythonバージョン切り替えbatファイル、pych.bat の中で、環境変数 PYTHONPATH まで設定していたのがマズかったのかもしれない。DOS窓を終了して再度開けば PYTHONPATH が未設定の状態になるので、それで正常動作してくれたのかも。

#2 [nitijyou] 茶の間のPCを自室に戻した

茶の間に置いてあった Windows PC を ―― 朱鼓という名前の、円筒状のPCケースに入れてあるPCを、自室に持ってきた。

以前、親父さんが骨折してあまり動けなくなった際、茶の間でソリティアを遊べるようにと設置したものの。親父さん自身がそのPCの存在をすっかり忘れて「おい。これは一体なんだ?」と言い出す始末。埃だらけになってたので、置いといてもしょうがないなと。

そもそも茶の間には、先日お袋さんが会社から持ち帰ってきたものも含めて、3台もノートPCが置いてあるわけで。PCを使いたくなったらノートPCを使ったほうがいいよなと…。

無線LAN子機を変えた。 :

今までつけていた無線LAN子機、ELECOM WDC-300SU2SWH (RTL8192CU) が不調。とにかく切れる。ガンガン切断される。熱で壊れたのかな…。

_300Mbps USB無線小型LANアダプタ - WDC-300SU2SWH


今まで Ubuntu機で使っていた ELECOM WDC-150SU2MBK (RTL8188EU? RTL8188EUS?) と交換してみた。こちらなら全然切断されない。

_150Mbps USB無線超小型LANアダプタ - WDC-150SU2MBK


どうもウチの環境は、300MBpsで接続できると謳う製品群と相性が悪い…。IO-DATA WN-G300UA (RTL8192CU) も頻繁に切断されてしまうから、ずっと埃を被ってるし…。

Windows Updateが大変。 :

Windows Update をしてみたら、めちゃくちゃ時間がかかった。

Windows10 x64 21H1 の状態でパッチを全部当ててから、21H2 にアップグレードしたけど、ダウンロードは比較的サクサク進むものの、そこから先が…。再起動を指示した直後の終了時、「Windowsの準備をしています」系のメッセージが、少なくとも1時間ずっと表示されたまま。

仕方ないので放置して寝てしまったけど、結局全部終わるまで、12時間ぐらいかかった気がする。AMD Athlon 5350 という非力なCPUのせいだろうか。ベースクロックは低いけど4コア4スレッドだし、CドライブはSSDなのだけどな…。でも、TDP 25W のCPUだから遅いのも仕方ないか…。

ちょっとググってみたら、Core 2 Duo E8400 より遅いCPUらしい。もっとも、Core 2 Duo E8400 は TDP 65W。内蔵GPUも無し。Athlon 5350 はGPUも内蔵しているのに TDP 25W だから、たしかに省電力ではある…。

ケースがベタベタする。 :

この朱鼓というPCケース、真っ赤な色のケースなのだけど。触るとベタベタする上に、指や床に赤い塗料がくっついてしまう状態になってしまった。高温多湿な日本の気候では酷いことになる材料を吹きつけたのだろうな…。見た目をよくしたいと思ったのか、触り心地をよくしたいと思ったのか分からんけど…。

ウチにある、他のアレコレも、いくつか似たような状態になっていて…。Gateway製ノートPCも表面がベタベタになったし、DELL製タブレットPCもベタベタだし、Microsoft製キーボードのパームレストのラバー部分もベタベタだし。どうしてこういう材料を使ってしまうのか。

この手の失敗した設計?が、一切どこにもフィードバックされないまま、今もどこかで、いずれべたべたになってしまう製品として作られ続けているあたりが悲しい。こういった製品を設計/製造してる地域は、一体どういう気候なのか…。

以上、1 日分です。

過去ログ表示

Prev - 2022/08 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project