之前代碼報錯,根據搜索結果是urllib3新版本導致的bug,按照教程卸載后,重新安裝低版本urllib3,發現pycharm報錯‘No Module Named urllib3’,下面是我折騰的經過
重裝requests
發現自己是用cmd在全局命令行下重新安裝的urllib3,遂把pycharm上的requests卸載,再用cmd在全局命令行下重新安裝requests,還是發現不了模塊;
添加環境變量
在cmd下,查看requests的位置
C:\Users\123>pip show urllib3
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Name: urllib3
Version: 1.25.7
Summary: HTTP library with thread-safe connection pooling, file post, and more.
Home-page: https://urllib3.readthedocs.io/
Author: Andrey Petrov
Author-email: andrey.petrov@shazow.net
License: MIT
Location: c:\users\123\appdata\roaming\python\python37\site-packages
Requires:
Required-by: selenium
C:\Users\123>
把路徑c:\users\123\appdata\roaming\python\python37\site-packages添加到環境變量,無果(重啟也沒用);
修改pycharm解釋器
在看到一篇文章 如何解決pycharm找不到模塊 發現了可以修改解釋器path的地方,
把路徑c:\users\123\appdata\roaming\python\python37\site-packages添加到這里后,稍等一下,pycharm就識別到模塊了,運行代碼也不再報錯了
///(^ v ^)\\\
后記
還有一個問題當時沒有考慮到,就是開發環境污染的問題,比如有兩個project需要urllib3,但是需要的版本不一樣,這樣在全局安裝urllib3就不太合適了,所以project需要的庫安裝在各自的虛擬環境中比較好;我用的是pycharm,把urllib3安裝在它自動創建的項目文件夾下的\venv\Lib\site-packages\即可,使用
pip install --target=c:\Users\123\PycharmProjects\Mytest\venv\Lib\site-packages urllib3==1.25.7
把之前添加的路勁刪除,依然可以識別模塊
///(^ v ^)\\\