好奇的探索者,理性的思考者,踏实的行动者。
Table of Contents:
使用国内镜像源:
# 使用清华大学镜像源
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 .
mkdir -p .config/pip
cd .config/pip/
touch pip.conf
vim pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
.pyc
文件是已编译的 Python 源代码文件的字节码表示形式。当您运行一个 Python 脚本时,解释器会将源代码编译成字节码,然后在执行时使用这些字节码。
.pyc
文件是在第一次执行源代码时由 Python 解释器自动生成的。它们包含了与源代码等效的字节码表示形式,以便在后续运行中可以更快地加载和执行代码。
.pyc
文件是与特定的 Python 版本和编译设置相关联的。因此,如果您更改了 Python 版本或更改了源代码,可能需要重新生成相应的 .pyc
文件,以确保其与新环境或代码的兼容性。
在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.txt文件
> requirements.txt pip freeze
安装requirements.txt依赖
-r requirements.txt pip install
window下pip的安装位置:
D:\program\Python311\Lib\site-packages
查看三方库安装位置:
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/
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可以帮助我们创建和分发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”目录下,这样其他程序就可以像导入标准库一样导入该应用的代码了
python目前主流的二进制包格式是wheel(.whl后缀),它的前身是egg。wheel本质也还是一个压缩包,可以像zip一样解压缩
# wheel是目前官方推荐的打包方式。
python setup.py build_wheel
# 等价于
python setup.py bdist_wheel
安装whell
pip install xxx.whl
创建虚拟环境:
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会修改相关环境变量,让命令python
和pip
均指向当前的venv环境。
如果不再使用某个venv,例如proj101env
,删除它也很简单。首先确认该venv没有处于“激活”状态,然后直接把整个目录proj101env
删掉就行。
优缺点分析:
1、venv是python3自带的,不需要额外安装库就能运行。
2、只能在3.3版本以后,2.x用不了
3、venv过于简单,没有额外的api。只能创建个虚拟环境,不能指定系统不存在的python环境版本,不能查看环境列表。
在某些 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