Webアプリ モンテカルロ法NAVI【カジノ必勝】 |
2020新作!WordPress 絞り込み検索フォームプラグイン |
無料/WordPress用絞込み検索プラグイン/ItemManager3 |
無料/WordPress用複合検索プラグイン/ItemManager2 |
無料/WordPress用絞り込み検索フォーム・プラグインItem Manager 1 |
不具合。anacondaとseleniumは一体どこに?
このお話は、Catalinaのこともanacondaのことも、ましてやseleniumのことさえも。
いまいち分かっていない人が書いたお話なので、あくまで参考までにお読みください。
ある日、私は久しぶりにpython3のseleniumを使おうとした。。
$ python3 api.py
Traceback (most recent call last):
File "api.py", line 3, in
from selenium import webdriver
ModuleNotFoundError: No module named 'selenium'
seleniumはいなくなっていた。。
私のseleniumは、anaconda3の中のpython3.6の中に配置されていたのだが。
最近、Mac OSをCatalinaへアップグレードした時に、anaconda3を丸ごと勝手に移動させられていたようだ。
デスクトップの”場所が変更された項目/セキュリティ/”の下に”anaconda3″はいるように見えるが、、
これは、エイリアス。
実体は、”/Users/Shared/Relocated\ Items/Security/”の下に潜んでいるようだ。。
Catalina 以前は、anaconda3は/(ルート)にいたのだが、Catalinaはanaconda3を/(ルート)に置いておく事を、よく思っていないらしい。
そこで、anaconda3はhomeディレクトリへ移動させることにした。
現在、anaconda3(実体)のいるディレクトリへ移動
$ cd /Users/Shared/Relocated\ Items/Security/
anaconda3を確認
$ ls -l
anaconda3をhomeディレクトリへコピー
$ cp -p -r ./anaconda3 /Users/{ユーザー名}/
多少時間がかかる‥
$ cd /Users/{ユーザ名}/anaconda3/bin/
$ vi conda
1行目を修正
#!/anaconda3/bin/python
↓
#!/Users/{ユーザ名}/anaconda3/bin/python
:wq
condaをアップデート
conda update conda
conda init bash
#もしくは、conda init zsh
#~/.bash_profileへパスを通す記述が追記される
#設定を再読み込み
source ~/.bash_profile
これで再び、seleniumを使えるようになりました。
続、不具合。anacondaの配置場所を変えたら、curlコマンドが使えない‥
anacondaの配置を変えたが、curlコマンド実行時に証明書へのパスがそのままなので、接続できなくなっていた。
~$ curl https://www.google.com
curl: (77) error setting certificate verify locations:
CAfile: /anaconda3/ssl/*****.pem
CApath: none
anacondaは、~(ユーザーのホームディレクトリ)に移動したのだから、
CAfile:/Users/{ユーザ名}/anaconda3/ssl/*****.pem
となっていなければ、だめだ。
~$ curl -k https://www.google.com
-k オプションを使ってみると正常に実行される。
※-kは証明書を使わずに通信をおこなう。非推奨らしい。
~$ which curl
/Users/{ユーザ名}/anaconda3/bin/curl
やはり、私のcurlは、anacondaのcurlを使用している。
~$ls -l /Users/{ユーザ名}/anaconda3/bin/curl | grep curl
-rwxrwxr-x 1 {ユーザ名} staff 216068 10 29 00:39 curl
-rwxrwxr-x 1 {ユーザ名} staff 6716 10 29 00:39 curl-config
勝手に配置場所を変えてしまったし、、
curl-configというファイルに証明書へのパスらしきものの記述があったが修正してもダメだった。
書き方がいけないのか?
ビルドし直したりする必要があるのか?
そもそも、私はビルドとか言ってるけど、ビルドってなんだ?
~$ which curl
/Users/mj/anaconda3/bin/curl
いろいろ苦戦した挙句、anacondaをアップデートしてあげた。
~$ conda update conda
そしたら、curl-configの内容も自動で書きかわり無事に証明書へのパスが通り、curlコマンドが使えるようになりました。
付録
ChromeDriver アップデートコマンド
〜$ brew cask info chromedriver
chromedriver: 78.0.3904.70
https ://sites.google.com/a/chromium.org/chromedriver/home
/usr/local/Caskroom/chromedriver/76.0.3809.68 (14.6MB)
From: https://github.com/Homebrew/homebrew-cask/blob/master/Casks/chromedriver.rb
==> Name
ChromeDriver
==> Artifacts
chromedriver (Binary)
〜$ pip install --upgrade pip
Requirement already up-to-date: pip in
(省略)
〜$ pip install selenium -U
Requirement already up-to-date: selenium in
(省略)
〜$ brew tap homebrew/cask
Updating Homebrew...
==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
https://docs.brew.sh/Analytics
(省略)
cockroach grib-api php@7.1 wine
〜$ brew reinstall chromedriver --cask
==> Downloading https://chromedriver.storage.googleapis.com/78.0.3904.105/chrome
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'chromedriver'.
==> Uninstalling Cask chromedriver
==> Unlinking Binary '/usr/local/bin/chromedriver'.
==> Purging files for version 76.0.3809.68 of Cask chromedriver
==> Installing Cask chromedriver
==> Linking Binary 'chromedriver' to '/usr/local/bin/chromedriver'.
🍺 chromedriver was successfully installed!
ChromeDriverのバージョン指定
現在、インストールされているChromeDriverのバージョンを確認する
〜$ chromedriver --version
〜$ pip list | grep chrome
ChromeDriverのバージョンを指定してインストールする
(例)87.0.4280.88を指定してインストール
〜$ pip install chromedriver-binary==87.0.4280.88
コメント