Table of Contents:

pip

pip加速

使用国内镜像源:

# 使用清华大学镜像源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

# 使用阿里云镜像源
pip install -i https://mirrors.aliyun.com/pypi/simple 包名

永久更改镜像

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
pip config set install.trusted-host https://mirrors.aliyun.com/pypi/simple

查看设置后的配置

pip config list

使用本地已下载的包安装

pip install /path/to/package.whl
pip install -r requirements.txt

-r requirements.txt: 指定包含依赖关系的 requirements 文件。

使用pip下载python包

pip download Flask -d .

Flask: 要下载的包的名称。
-d .: 指定下载目录为当前目录。

下载指定版本的库

pip download YourPackage --platform manylinux2014_aarch64 -d .

linux

mkdir -p .config/pip
cd .config/pip/
touch pip.conf
vim pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

pyc

.pyc 文件是已编译的 Python 源代码文件的字节码表示形式。当您运行一个 Python 脚本时,解释器会将源代码编译成字节码,然后在执行时使用这些字节码。
.pyc 文件是在第一次执行源代码时由 Python 解释器自动生成的。它们包含了与源代码等效的字节码表示形式,以便在后续运行中可以更快地加载和执行代码。
.pyc 文件是与特定的 Python 版本和编译设置相关联的。因此,如果您更改了 Python 版本或更改了源代码,可能需要重新生成相应的 .pyc 文件,以确保其与新环境或代码的兼容性。

pyd

在Python中,.pyd 文件是用C或C++编写的扩展模块的二进制文件。它们是Python Dynamic Modules的缩写。扩展模块是在Python解释器中使用的自定义功能模块,可以通过C或C++编写以获得更高的性能或访问底层系统功能。

.pyd 文件是通过将C或C++代码编译为共享库(在Windows上是动态链接库)并与Python解释器进行链接生成的。这些文件通常包含编译后的二进制代码和相关的符号信息,以便Python解释器可以加载和执行扩展模块。

扩展模块通常用于执行一些与Python内置模块不同的任务,例如访问底层系统API、执行高性能的计算任务、与外部库进行交互等。一些常见的Python扩展模块,如NumPy、Pandas和OpenCV,都是使用C或C++编写并编译为.pyd 文件的。

要在Python中使用.pyd 文件,通常需要使用import语句将其导入到Python脚本或模块中。导入后,您可以使用扩展模块提供的功能和类来增强您的Python代码。

需要注意的是,.pyd 文件在不同的操作系统上可能具有不同的扩展名,例如.so(Linux)、.dylib(macOS)等,但在Windows上通常使用.pyd

requirements文件

生成requirements.txt文件

pip freeze > requirements.txt

安装requirements.txt依赖

pip install -r requirements.txt

windows下pip

window下pip的安装位置:

D:\program\Python311\Lib\site-packages

linux下pip

查看三方库安装位置:
python3 -m site --user-site

普通用户身份安装的包通常会存储在用户的主目录下的 .local 目录中,例如:/home/username/.local/lib/pythonX.Y/site-packages/

在以 root 用户身份使用 pip 安装 Python 包时,包将被下载和安装到 /usr/local/lib/pythonX.Y/dist-packages/ 目录下。
但推荐使用虚拟环境或普通用户身份来管理 Python 包,以避免潜在的系统兼容性和安全性问题。

python自带的包安装在:/usr/lib/pythonX.Y/

setuptools

python中安装依赖包的方式

1. 源码包:python setup.py install
2. 在线安装:pip install pkg_name / easy_install pkg_name
在线安装是从PyPI (Python Package Index)来的,官网是:https://pypi.python.org/pypi
执行pip install pkg_name命令的时候,它就会去从官方网站搜pkg_name,搜到了就下载压缩包并解压安装,如果没有搜索到就会报错。

曾经 Python 的分发工具是 distutils,但它无法定义包之间的依赖关系。
setuptools 则是它的增强版,能帮助我们更好的创建和分发 Python 包,尤其是具有复杂依赖关系的包。他还提供了自动包查询程序,用来自动获取包之间的依赖关系,并完成这些包的安装,大大降低了安装各种包的难度,使之更加方便。

一般 Python 安装会自带 setuptools,如果没有可以使用 pip 安装:

$ pip install setuptools

setuptools 简单易用,只需写一个简短的 setup.py 安装文件,就可以将你 Python 应用打包。

# ----- Imports ----- #
from setuptools import setup


# ----- Setup ----- #


setup(
    name='blog-engine',
    version='0.1.0',
    author='sunxvming',
    install_requires=['markdown', 'jinja2']
)

安装后的结果:
打包之后多出两个文件夹,分别是xx.egg-info和dist。xx.egg-info是必要的安装信息,
而dist中的压缩包就是安装包,此时默认的egg包,egg包就是zip包,如果需要使用egg包,将egg后缀改成zip解压即可

安装命令:python setup.py install

使用setuptools打包

源码包sdist

setuptools可以帮助我们创建和分发Python包。
首先python库的打包分发方式有两种:源码包source dist(sdist)、二进制包binary dist(bdist)。

# 源码包sdist就是我们熟悉的.zip、.tar.gz等后缀文件,就是一个压缩包。
python setup.py sdist

# 解压后使用如下命令进行安装
python setup.py install

# 或者是用pip命令直接安装源码包
pip install xxx.zip
# notice:该命令会将当前的Python应用安装到当前的Python环境的“site-packages”目录下,这样其他程序就可以像导入标准库一样导入该应用的代码了

二进制包bdist

python目前主流的二进制包格式是wheel(.whl后缀),它的前身是egg。wheel本质也还是一个压缩包,可以像zip一样解压缩

# wheel是目前官方推荐的打包方式。
python setup.py build_wheel 
# 等价于
python setup.py bdist_wheel

安装whell

pip install xxx.whl

venv

基本使用

创建虚拟环境:
python3 -m venv myenv
这将在当前目录中创建一个名为 myenv 的虚拟环境。

【激活虚拟环境】
linux上
source myenv/bin/activate

Windows 上:
myenv\Scripts\activate

一旦虚拟环境被激活,您可以在其中安装项目特定的 Python 包,并运行项目,而不会影响全局 Python 环境。

【退出环境】

deactivate

venv只能使用当前系统已经安装好的python,无法使用其他版本的python环境
venv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python链接或复制一份到venv的环境,用命令source activate进入一个venv环境时,venv会修改相关环境变量,让命令pythonpip均指向当前的venv环境。

如果不再使用某个venv,例如proj101env,删除它也很简单。首先确认该venv没有处于“激活”状态,然后直接把整个目录proj101env删掉就行。

优缺点分析:
1、venv是python3自带的,不需要额外安装库就能运行。
2、只能在3.3版本以后,2.x用不了
3、venv过于简单,没有额外的api。只能创建个虚拟环境,不能指定系统不存在的python环境版本,不能查看环境列表。

ubuntu中使用

在某些 Linux 发行版中,如 Debian 和 Ubuntu,python3-venv 软件包提供了 venv 模块的一种实现。尽管 Python 3 的标准库本身包含 venv 模块,但某些 Linux 发行版选择将它拆分为单独的软件包以降低操作系统的体积。

因此,如果您在某些 Linux 发行版上使用 python3-venv 包,实际上是安装了 venv 模块的一个特定版本,以便在您的系统上使用。这样,即使系统的 Python 3 安装本身没有包含 venv 模块,您仍然可以使用虚拟环境功能。

一般来说,如果您使用的是标准的 Python 3 安装(而不是特定于某个 Linux 发行版的Python版本),那么您通常不需要安装 python3-venv 包,因为 venv 模块已经内置在 Python 3 中。只有在一些定制的 Linux 环境中才需要安装 python3-venv 软件包。

安装python3-venv
sudo apt install python3-venv

查看venv安装到哪里了
find /usr -type d -name 'venv'

使用apt下载venv的deb的包
apt-get download python3.10-venv

安装
sudo dpkg -i package_name.deb