pip笔记

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
2
 pip install statsmodels -i https://pypi.tuna.tsinghua.edu.cn/simple/
Looking in indexes: 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包时如果超时失败,可以尝试以下几种方法:

  1. 增加超时时间:可以在安装命令前添加参数,例如pip install --default-timeout=1000 <package-name>,以增加超时时间。
  2. 更换镜像源:可以尝试使用国内镜像源进行安装,以减少安装时间。
  3. 选择本地包:如果安装某个包时出现超时失败,可以尝试手动下载该包的.whl文件并使用pip install <whl-file>命令进行安装。
  4. 尝试其他安装方法:如果使用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,请按以下步骤操作:

  1. 创建虚拟环境:首先需要创建 Anaconda 虚拟环境,使用以下命令创建:

    1
    conda create --name <env_name>

    其中 <env_name> 是虚拟环境的名称。

  2. 激活虚拟环境:使用以下命令激活虚拟环境:

    1
    conda activate <env_name>
  3. 在虚拟环境中安装 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命令安装。

打包方法:

  1. 打包为.tar.gz文件:

    1
    python setup.py sdist
  2. 打包为.whl文件:

    1
    python setup.py bdist_wheel

完成打包后,就可以使用pip install命令安装自己写的包了。

安装完 发现有问题:XXXapi.so: undefined symbol报错怎么办?

https://github.com/pytorch/pytorch/issues/10234
chatgpt

这个错误通常是由于共享库中缺少必要的符号引起的。原因可能是:

  1. 缺少依赖库:检查它是否已安装,并确保它在系统库搜索路径中,或者使用环境变量LD_LIBRARY_PATH来指定其位置。具体地:export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 把这个库链接到lib的path里,再试一试。

  2. 版本不兼容:检查该库的版本与使用它的程序的版本是否兼容。

  3. 损坏的共享库:重新安装该库并确保其完整性。

如果仍然不能解决问题,可以在问题的具体环境下向社区寻求帮助,例如编程论坛或 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
2
packageB
packageA

运行以上命令后,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参数解释

Python 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>

    安装时,libbin 和其它顶级目录的存放目录,也就是这些目录的路径前缀

  • -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>

    用于指定要显示的进度条类型,可选项有 onasciioffprettyemoji,默认为 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

    启用依赖关系链接的处理