コピー後、以下のようなエラーが出て実行できない。
基本は、OS上のPythonではなく、コピーした仮想環境下で実行すべきかと思う。
(OS上のPythonを汚さないため、できるだけ以前の環境を維持し、UpgradeもNG。)
$ pip freeze
Traceback (most recent call last):
File "/opt/script/python/kaso/opendata/bin/pip", line 5, in <module>
from pip._internal.cli.main import main
ModuleNotFoundError: No module named 'pip'
解決方法(1)
$ wget https://bootstrap.pypa.io/get-pip.py $ python3 get-pip.py Collecting pip Downloading pip-22.0.4-py3-none-any.whl (2.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 41.3 MB/s eta 0:00:00 Collecting setuptools Downloading setuptools-61.3.0-py3-none-any.whl (1.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 68.4 MB/s eta 0:00:00 Collecting wheel Downloading wheel-0.37.1-py2.py3-none-any.whl (35 kB) (動作確認) $ pip --version pip 22.0.4 from /opt/script/python/kaso/opendata/lib/python3.8/site-packages/pip (python 3.8) $ pip3 --version pip 22.0.4 from /opt/script/python/kaso/opendata/lib/python3.8/site-packages/pip (python 3.8)
解決方法(2)※エラーが消えるが、モジュールも消えるので追加する
(事前に前の環境で、$ pip freeze で導入したモジュールを確認しておく必要がある)
(移動直後は、空っぽになっている) $ pip freeze $
(必要なモジュールを導入する) $ pip install bs4 certifi chardet DateTime ....... (前の環境[$ pip freeze > kankyo.txt]を一括モジュール実行する) $ pip install -r < kankyo.txt
(今後のため、バックアップしておくことを習慣にしましょう♬) $ pip freeze > kankyo.txt $ cat kankyo.txt beautifulsoup4==4.10.0 bs4==0.0.1 certifi==2021.10.8 chardet==4.0.0 charset-normalizer==2.0.12 DateTime==4.4 idna==3.3 pytz==2022.1 requests==2.27.1 soupsieve==2.3.1 urllib3==1.26.9 zope.interface==5.4.0