mieki256's diary



2022/03/23(水) [n年前の日記]

#1 [python] pip download と PySimpleGUI27 についてメモ

Python 2.7.18 で PySimpleGUI を使いたい場合、PySimpleGUI27 をインストールすることになるけれど、手元に .whl を残そうとしたところで悩んでしまったのでメモ。

環境は Windows10 x64 21H2 + Python 2.7.18。

PySimpleGUI は、Python + tkinter で GUIアプリを作る際に、ウィジェットのレイアウトを簡単に指定できるようにしてくれるモジュール。tkinter のラッパー、なのかな。たぶん。

Windows10 x64 21H2 + Python 2.7.18 の場合、本来であれば PySimpleGUI27-2.4.1-py2-none-any.whl が入手できるはずで。と言うのも、pip install PySimpleGUI27 と打ち込んでインストールをすると、件の .whl 名が表示されたので、どこかにその .whl があるはずだよなと…。

しかし、pip download hoge を使って、インストールに必要なファイルをダウンロードしようとしたら、PySimpleGUI27-2.4.1.tar.gz しか落ちてこない…。

> pip download --no-deps PySimpleGUI27
...
Collecting PySimpleGUI27
  Using cached PySimpleGUI27-2.4.1.tar.gz (398 kB)
Saved d:\home\downloads\pysimplegui27-2.4.1.tar.gz
Successfully downloaded PySimpleGUI27
ちなみに、--no-deps は依存関係で必要になるモジュールまでダウンロードしないようにする指定。

Cドライブ内を探してみたら、自分の環境の場合、以下の場所に .whl が残ってた。

C:\Users\(USERNAME)\AppData\Local\pip\cache\wheels\3c\f7\51\f54942ffa2058cdca29a8bd7bd9114d8a5a1fb95bfcc76e67d\PySimpleGUI27-2.4.1-py2-none-any.whl

pip cache list で、pip が現在キャッシュしてるファイルの一覧が見れるらしいので確認してみた。

> pip cache list
...
Cache contents:

- PySimpleGUI27-2.4.1-py2-none-any.whl (110 kB)
- future-0.18.2-py2-none-any.whl (502 kB)
- pygubu-0.13-py2-none-any.whl (63 kB)
- pygubu-0.19-py2-none-any.whl (65 kB)
- pygubu_designer-0.18-py2-none-any.whl (288 kB)
- pygubu_designer-0.23-py2-none-any.whl (342 kB)

pip cache purge でキャッシュをクリアできるらしい。

_pipのキャッシュをクリアする - テクめも

pip のキャッシュをクリアしてから、pip uninstall PySimpleGUI27 と pip uninstall future を実行して PySimpleGUI27 をアンインストール後、再度 pip install PySimpleGUI27 を実行してインストールしてみたところ、PySimpleGUI27-2.4.1.tar.gz と future-0.18.2.tar.gz がダウンロードされて、そこから .whl が生成されたように見えた。

どうやら、pip donwload hoge で .tar.gz がダウンロードされるのは正常な動作らしい。.whl はインストール時にローカルで生成されてキャッシュされていた模様。そういうオチか…。

PySimpleGUIのインストールについて。 :

Python 3.x の場合は、pip install PySimpleGUI でインストールできる。

Python 2.7.18 32bit の場合は、pip install PySimpleGUI27 でインストールできるが、動作には future と typing が必要になる。

future は依存関係で一緒にインストールされるが、typing は依存関係に漏れがあるのかインストールされない。typing がインストールされてない状態では、import PySimpleGUI27 を実行しただけでエラーが出てしまう。

> python
Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:19:08) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import PySimpleGUI27
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python\Python27\Lib\site-packages\PySimpleGUI27\__init__.py", line 2, in <module>
    from .PySimpleGUI27 import *
  File "C:\Python\Python27\Lib\site-packages\PySimpleGUI27\PySimpleGUI27.py", line 136, in <module>
    from typing import List, Any, Union, Tuple, Dict    # because this code has to run on 2.7 can't use real type hints.  Must do typing only in comments
ImportError: No module named typing

どうやら、別途 pip install typing と打って typing をインストールする必要がある模様。たぶん。自信無いけど。

2022/03/23現在、Windows10 x64 21H2 + Python 2.7.18 32bit上で以下のモジュールをインストールした。この状態なら PySimpleGUI の簡単なサンプルも動作した。

  • PySimpleGUI27 2.4.1
  • future 0.18.2
  • typing 3.10.0.0

尚、PySimpleGUI27 は、PySimpleGUI と比べてめちゃくちゃバージョンが古いので、一部の機能(テーマ機能等)が実装されてないことに注意。まあ、これから使う人は Python 3.x を使うだろうから問題は起きないだろうけど…。

以上、1 日分です。

過去ログ表示

Prev - 2022/03 - 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