PiP Not Found Issue #
使用pip
安装某包时, 提示让更新, 按提示操作更新没效果没反应再用就提示ModuleNotFoundError: No module named 'pip'
(ˉ▽ˉ;)…
ModuleNotFoundError: No module named ‘pip’ #
升级PiP
时出现问题可由下方命令修复
#
python -m ensurepip
python -m pip install --upgrade pip
SSL校验 #
安装EasyOCR时,
reader = easyocr.Reader(['ch_sim','en'])
下载到接近90,结果报错了…. 估计是SSL问题加入以下两条,不知如何.
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
from http.client
To revert to the previous, unverified, behavior ssl._create_unverified_context() can be passed to the context parameter.
使用国内镜像下载Python #
pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ dlib(numpy等包名)
# 一键更新pip 包资源(利用管道grep传输查询到的需要更新包名,传输到install命令)
pip3 freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U
# 权限不够的话就在`pip3 install` 之前加`sudo`反正我不习惯用`root`
安装错误? #
居然有pip3 install XX
的错误…这也是因为有旧版pip3
存留。需要
$bash -d pip3
$bash -r pip3
来清理shell中旧版pip缓存。
pip提示ModuleNotFoundError: No module named ‘pkg_resources’ #
pip下载python包一直提示ModuleNotFoundError: No module named ‘pkg_resources’,如下图:
python -m pip install --upgrade pip setuptools wheel
即可解决问题。
Python 无处安放的野生列表 #
-async def _gen_login_task_for_phone(_package_name: str, phone: CloudPhoneInfo, _used_accountid_list: List[int]=[]) -> TaskData:
+async def _gen_login_task_for_phone(_package_name: str, phone: CloudPhoneInfo) -> TaskData:
__time_func_start = time.time()
lock_id = await PackageAccountBindInfo.acquire_restock_account_lock()
__time_done_get_lock = time.time()
# 查询账号前申请锁
if not lock_id:
return None
- using_accountid_list = await GoogleAccounts._get_using_accountid_list()
+ _used_accountid_list = await GoogleAccounts._get_using_accountid_list()
__time_done_get_using_account = time.time()
- _used_accountid_list.extend(using_accountid_list)
if phone.responsible_for == 0:
# 跟随最大包的切换频率 - 登陆新账号保证所有包可用 2
_account_list = await GoogleAccounts._fetch_new_acoount_by(_used_accountid_list=_used_accountid_list)
@@ -85,8 +84,9 @@ async def _gen_login_task_for_phone(_package_name: str, phone: CloudPhoneInfo, _
"获取账号耗时": __time_done_get_account - __time_done_get_using_account,
"刷新账号使用缓存耗时": __time_done_cache_history - __time_done_get_account,
"缓存账号使用耗时": __time_done_release_lock - __time_done_cache_history,
+ "长度": len(_used_accountid_list),
}
async def _gen_login_task_for_phone(_package_name: str, phone: CloudPhoneInfo) -> TaskData:
__time_func_start = time.time()
lock_id = await PackageAccountBindInfo.acquire_restock_account_lock()
__time_done_get_lock = time.time()
# 查询账号前申请锁
if not lock_id:
return None
_used_accountid_list = await GoogleAccounts._get_using_accountid_list()
__time_done_get_using_account = time.time()
if phone.responsible_for == 0:
# 跟随最大包的切换频率 - 登陆新账号保证所有包可用 2
_account_list = await GoogleAccounts._fetch_new_acoount_by(_used_accountid_list=_used_accountid_list)
else:
_account_list = await GoogleAccounts._restock_query_accounts_by(
cloud_phone=phone.cloud_phone, package_name=_package_name,
_used_accountid_list=_used_accountid_list,
responsible_for=phone.responsible_for
)
__time_done_get_account = time.time()
_account = (_account_list and random.choice(_account_list)) or None
return task_data
以前方法有个 _used_accountid_list
入参, 但是外面调用没有给它传值; 一直执行这个方法的话 这个列表就会无限递增起来……..超级牛逼