pip笔记
安装python包超时失败
stackoverflow :How to solve ReadTimeoutError: HTTPSConnectionPool(host=’pypi.python.org’, port=443) with pip?
解决安装Python包时超时失败ReadTimeoutError: HTTPSConnectionPool(host=’files.pythonhosted.org’, port=443)
遇到超时 timeout error:
方法1. 添加镜像源:
使用国内的镜像源安装。在原来安装时在命令里加一个参数 -i,然后在i后面加国内镜像地址。
选择国内的镜像源列表如下:
清华源: https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云: http://mirrors.aliyun.com/pypi/simple/
中国科技大学: https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban):http://pypi.douban.com/simple/
清华大学: https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学: http://pypi.mirrors.ustc.edu.cn/simple/
1 | pip install statsmodels -i https://pypi.tuna.tsinghua.edu.cn/simple/ |
方法2:
1 | sudo pip install --default-timeout=100 xx包 |
方法3:
1 | python -m pip install --upgrade pip |
以下是chatgpt回答
在安装Python包时如果超时失败,可以尝试以下几种方法:
- 增加超时时间:可以在安装命令前添加参数,例如
pip install --default-timeout=1000 <package-name>,以增加超时时间。 - 更换镜像源:可以尝试使用国内镜像源进行安装,以减少安装时间。
- 选择本地包:如果安装某个包时出现超时失败,可以尝试手动下载该包的.whl文件并使用
pip install <whl-file>命令进行安装。 - 尝试其他安装方法:如果使用
pip install命令安装失败,可以尝试使用conda install或其他安装方法进行安装。
pip安装的路径在哪里
以下是chatgpt回答
在 Windows 系统中,默认情况下 pip 安装的路径位于 Python 安装目录下的 Scripts 目录中,例如 C:\PythonXX\Scripts,其中 XX 代表 Python 的版本号。
在 Linux 和 macOS 系统中,pip 安装的路径通常位于 /usr/local/bin 或 /usr/bin 目录中。
可以使用以下命令查找 pip 安装的具体路径:
1 | which pip |
或者在命令行中运行:
1 | pip show pip |
它将显示 pip 包的详细信息,其中包括安装路径。
选择让pip安装在anaconda的虚拟环境中或默认环境中
就是切换(activate激活)到虚拟环境中。
有三类pip:
- 第一类没有在anaconda环境中,也有装pip工具的,pip install时,安装的包的路径一般在
/usr/bin下; - 第二类在anaconda的base环境中,pip install时,安装的包的路径一般在
XX/anaconda3/bin下; - 第二类在anaconda的自建的环境中,pip install时,安装的包的路径一般在
XX/anaconda3/envs/XX/bin下;
以下回答来自chatgpt
如果想在 Anaconda 虚拟环境中使用 pip,请按以下步骤操作:
创建虚拟环境:首先需要创建 Anaconda 虚拟环境,使用以下命令创建:
1
conda create --name <env_name>
其中
<env_name>是虚拟环境的名称。激活虚拟环境:使用以下命令激活虚拟环境:
1
conda activate <env_name>
在虚拟环境中安装 pip:在虚拟环境中使用以下命令安装 pip:
1
conda install pip
现在,您已在 Anaconda 虚拟环境中安装了 pip,并且可以使用它来安装 Python 包。在使用 pip 安装包时,请确保该虚拟环境处于激活状态。
用pip安装自己写的包
要用pip安装自己写的包,可以使用pip install命令,并传入该包的路径作为参数:
1 | pip install /path/to/your_package.tar.gz |
如果该包未打包成.tar.gz或.whl文件,需要先打包,然后再使用pip install命令安装。
打包方法:
打包为.tar.gz文件:
1
python setup.py sdist
打包为.whl文件:
1
python setup.py bdist_wheel
完成打包后,就可以使用pip install命令安装自己写的包了。
安装完 发现有问题:XXXapi.so: undefined symbol报错怎么办?
这个错误通常是由于共享库中缺少必要的符号引起的。原因可能是:
缺少依赖库:检查它是否已安装,并确保它在系统库搜索路径中,或者使用环境变量LD_LIBRARY_PATH来指定其位置。具体地:
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64把这个库链接到lib的path里,再试一试。版本不兼容:检查该库的版本与使用它的程序的版本是否兼容。
损坏的共享库:重新安装该库并确保其完整性。
如果仍然不能解决问题,可以在问题的具体环境下向社区寻求帮助,例如编程论坛或 Stack Overflow。
具体报错为:ImportError: /mnt/k/anaconda3/envs/wenet/lib/python3.8/site-packages/torch/lib/libtorch_cuda_cpp.so: undefined symbol: _ZNK3c104Type14isSubtypeOfExtERKSt10shared_ptrIS0_EPSo
torch下载慢
解决方法:直接在浏览器里下载网页的链接wsl文件,然后pip install手动安装。
另一种方法,换channel:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
今天以pytorch1.7.1举栗子。
pytorch官网查看pytorch安装命令
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch
1
首先,使用命令将下述网址添加conda源
conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
1
其次,最后使用新的安装命令,将-c pytorch去掉,表示从我们配置的新路径中下载
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0
pip install -r
在 pip install 时可以通过使用 -r 参数来安装一个包的依赖。比如,如果你想要安装包A,并且包A需要包B才能工作,你可以使用以下命令:
1 | pip install -r requirements.txt |
其中 requirements.txt 文件是一个文本文件,包含了需要安装的所有包的名称,比如:
1 | packageB |
运行以上命令后,pip 会先安装包B,再安装包A。
pip install 链接已有的包
使用 pip install 命令可以从网络上下载并安装包,你也可以通过链接已有的包安装。使用“-f”参数即可:
1 | pip install -f <path-to-dependency> <your-package> |
其中,<path-to-dependency>是已有包的路径,<your-package>是你的包名称。在执行此命令时,pip 将使用路径指向的包作为依赖安装。
pip install参数解释
语法
pip install 命令的语法格式如下
1 | pip install [options] <requirement specifier> [package-index-options] ... |
或
1 | pip install [options] -r <requirements file> [package-index-options] ... |
或
1 | pip install [options] [-e] <vcs project url> ... |
或
1 | pip install [options] [-e] <local project path> ... |
或
1 | pip install [options] <archive url/path> ... |
pip install 命令可以从以下地址安装包
- 使用需求说明符从 PiPY 或其它索引上安装
- VCS 项目网址
- 本地项目目录
- 本地或远程源代码归档
pip 还支持从 「 需求文件 」 ( requirements file ) 安装,这为安装指定的整个环境提供了一种简便方法
-c, --constraint <file>使用给定的约束文件约束版本,该选项可以重复添加
-r, --requirement <file>从给定的需求文件中安装,该选项可以重复添加
按照惯例,需求文件名为
requirements.txt--no-deps不安装包的任何依赖项
--pre包含预发布版本和开发版本,默认只会包行稳定的版本
-e, --editable <path/url>在可编辑模式下从一个本地的项目路径或 VCS URL 中安装一个项目 ( 例如,setuptools 的 「 开发者模式 」 )
-t, --target <dir>将包安装到指定目录
<dir>默认情况下,该选项并不会覆盖
<dir>目录中已经存在的文件或目录,但可以使用--upgrade选项将已经存在的包更新到最新的版本--user将所有的包安装到我们的平台的Python 用户安装目录,通常为
~/.local/或 Windows 上为%APPDATA%Python( 更多详细信息,可以查看 Python 文档中的site.USER_BASE部分 )--root <dir>安装与此备用根目录
<dir>包含的所有内容--prefix <dir>安装时,
lib、bin和其它顶级目录的存放目录,也就是这些目录的路径前缀-b, --build <dir>用于存放解压缩的包和构建的包
请注意,初始构建仍发生在临时目录中
可以通过适当地设置
TMPDIR环境变量 ( Windows上的TEMP) 来控制临时目录的位置注意,如果使用了该参数,当构建发生故障时,并不会清空构建目录
--src <dir>用于存放迁出的可编辑项目
在虚拟环境中,默认的目录为
<venv path>/src, 在全局安装中,默认的目录为<current dir>/src-U, --upgrade更新所有指定的包到最新的可用版本。 依赖项的处理取决于所使用的升级策略
--upgrade-strategy <upgrade_strategy>确定应如何处理依赖项升级 ( 默认值:「 仅在需要时 」)
eager- 无论当前安装的版本是否满足升级包的要求,都会升级依赖项only-if-needed- 仅在不满足升级包的要求时才升级
--force-reinstall重新安装所有的包,即使它们已经是最新的版本
-I, --ignore-installed忽略已经安装的包 ( 用重新安装取代 )
--ignore-requires-python忽略 Requires-Python 信息
--no-build-isolation在构建现代的源代码分发包是禁用隔离
如果使用了此选项,则必须已安装 PEP518 规定的构建依赖项
--install-option <options>安装时提供给
setup.py安装命令的额外参数( 使用方法类似于--install-option="--install-scripts=/usr/local/bin")可以使用多个
--install-option选项将多个选项传递给setup.py install如果你使用带有目录路径的选项,请确保使用绝对路径
--global-option <options>在
bdist_wheel命令之前提供给setup.py调用的额外全局选项--compile将 Python 源代码编译为 bytecode
--no-compile不要将 Python 源代码编译为
bytecode--no-warn-script-location当安装脚本不在
PATH路径中时不要发出警告--no-warn-conflicts出现已损坏的依赖关系时不要发出警告
--no-binary <format_control>不使用二进制包
该选项可以重复添加,每增加一个就会自增当前的值
可选的值有
:all::禁用所有二进制包:none::清空集合,或者使用逗号之间的一个或多个包名称
注意,某些软件包编译起来很棘手,并且,即使在添加了此选项后仍然可能无法安装
--only-binary <format_control>不使用源代码包
该选项可以重复添加,每增加一个就会自增当前的值
可选的值有
:all::禁用所有源代码包:none::清空集合,或者使用逗号之间的一个或多个包名称
注意,没有二进制发行版的软件包在使用此选项时将无法安装
--no-clean不要清空构建目录
--require-hashes对于可重复安装,需要根据哈希值来检查每个需求
如果需求文件中的任何一项包含了
--hash选项,则隐式包含此选项--progress-bar <progress_bar>用于指定要显示的进度条类型,可选项有
on、ascii、off、pretty、emoji,默认为on-i, --index-url <url>Python 包索引的基础 URL 地址,默认为 https://pypi.org/simple
该选项的值应该指向符合 PEP503 ( 简单存储库 API ) 的存储库或以相同格式布局的本地目录
--extra-index-url <url>除了
--index-url之外的附加的 Python 包索引 URL,规则和--index-url一样--no-index忽略包索引,使用
--find-links指定的 URL-f, --find-links <url>如果提供的 URL 或路径链接到一个 html 文件,则会解析该 html 文件以获取归档
如果是本地目录,或
file://url指向的是一个目录,那么就在该目录中查找归档--process-dependency-links启用依赖关系链接的处理