python项目环境
pip
以下是对系统python环境修改,如果是项目级别的,记住先venv后再venv里进行pip3的操作
你可以通过以下命令来判断是否已安装:
pip3 --version # Python3.x 版本命令
# 可以alias pip=pip3
pip install -U pip # pip升级
指定pip也可以
sudo pip2 install 模块名
pip源修改 阿里源即可
# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 或:
# 阿里源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 腾讯源
pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple
# 豆瓣源
pip config set global.index-url http://pypi.douban.com/simple/
ssh问题
比如
Could not fetch URL https://pypi.vnpy.com/numpy/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.vnpy.com', port=443): Max retries exceeded with url: /numpy/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)'))) - skipping
出现这个错误是由于 SSL 证书验证失败,mac上可执行下面的命令来安装和更新证书:
/Applications/Python\ 3.x/Install\ Certificates.command
requirements
适用于 单虚拟环境的情况:为什么只适用于单虚拟环境?因为这种方式,会将环境中的依赖包全都加入,如果使用的全局环境,则下载的所有包都会在里面,不管是不时当前项目依赖的
非venv请不要用这个
查看当前pip install的
pip3 list # 输出当前列表
更新requirements文件,每次pip install新的后都需要执行一次
pip freeze > requirements.txt
使用requirements.txt安装依赖
pip install ``-``r requirements.txt
venv 虚拟环境
虚拟环境,和系统Python环境隔离,好处是互不影响,项目级别推荐。
创建虚拟环境 (后面venv是名字,一个项目可以多个venv,这里就叫venv,不用起其他名字了)
python3 -m venv venv
要使用虚拟环境就必须激活
➜ source venv/bin/activate
然后在命令行中就会出现
(venv) ➜
说明虚拟环境已经激活,进入到venv shell了
venv里有pip和Pip3提供, python3也是venv自己的,相当于一个新的shell,然后覆盖了一些python相关命令
要取消虚拟环境,使用
(venv) ➜ deactivate
pycharm结合使用
可通过venv命令行创建好python环境,然后使用pycharm设置里设置interpreter 来切换到venv。
example
- 创建venv, 如果有就激活
- venv shell里pip requirement操作,安装和更新requirement文件
- pycharm设置interpreter
venv 和 pyenv 是两个常用于 Python 环境管理的工具,但它们的目的和工作方式有所不同。以下是两者的主要区别:
1. 基本概念
venv:
- 是 Python 自带的虚拟环境工具,用于在同一个系统中创建隔离的 Python 环境,每个虚拟环境有自己独立的库、依赖和包管理,而不影响全局的 Python 安装和库。
- 虚拟环境的 Python 版本与系统中已安装的某个 Python 版本相同。
- 主要用于项目依赖管理,确保每个项目使用独立的库和包,而不会互相干扰。
pyenv:
- 是用于管理多个 Python 版本的工具,允许用户在系统中安装和切换多个不同版本的 Python。
- 你可以使用
pyenv安装、卸载不同版本的 Python(例如 2.x、3.x、甚至是某些特定的 Python 版本),并且可以在全局或每个项目中设置不同的 Python 版本。 - 主要用于管理不同的 Python 版本,而不是管理 Python 包。
2. 功能对比
| 功能 | venv | pyenv |
|---|---|---|
| 虚拟环境管理 | 创建隔离的 Python 虚拟环境(依赖隔离) | 不直接创建虚拟环境,但可以与 pyenv-virtualenv 一起使用 |
| Python 版本管理 | 依赖于系统中现有的 Python 版本 | 允许安装、管理和切换多个不同版本的 Python |
| 多个 Python 版本支持 | 不能用于安装不同版本的 Python,只能使用系统已安装的版本 | 可以安装和管理多个 Python 版本,例如 3.6、3.8、3.10 等 |
| 适用场景 | 适合为每个项目创建独立的虚拟环境,管理项目依赖 | 适合管理系统上的不同 Python 版本,特别是需要多版本开发时 |
| 依赖隔离 | 是,用于项目依赖隔离 | 否,单独依赖隔离需要结合 pyenv-virtualenv |
3. 工作原理
venv 工作原理:
venv创建的是一个独立的虚拟环境,它会在指定的目录下生成一套独立的 Python 解释器和包管理器(pip)。- 虚拟环境与全局环境隔离,因此每个虚拟环境内的包不会影响到全局环境或其他虚拟环境。
- 虚拟环境的 Python 版本必须与系统中已有的版本一致。
示例:
bash
Copy code
# 创建虚拟环境
python3 -m venv myenv
# 激活虚拟环境
source myenv/bin/activate
# 安装依赖
pip install <package_name>
# 退出虚拟环境
deactivate
Pyenv 多python环境
pyenv允许用户安装和管理多个不同的 Python 版本,并提供方便的切换工具。你可以在全局(系统范围)设置一个默认的 Python 版本,也可以为每个项目设置特定的 Python 版本。pyenv并不会替换系统的 Python,它通过修改环境变量来改变当前使用的 Python 版本。- 如果需要创建虚拟环境,你可以使用
pyenv安装指定的 Python 版本,再结合pyenv-virtualenv来创建虚拟环境。
示例:
# 查看可用的 Python 版本
pyenv install --list
# 安装 Python 3.10.9
pyenv install 3.10.9
# 切换全局 Python 版本为 3.10.9
pyenv global 3.10.9
# 为特定目录设置 Python 版本(例如当前项目)
pyenv local 3.9.6
# 查看当前使用的 Python 版本
pyenv version
对比venv.
venv:
- 当你只需要为单个项目创建一个独立的 Python 虚拟环境时,
venv是最简单的解决方案。它直接依赖系统中的某个 Python 版本,可以确保不同项目的依赖隔离。
pyenv:
- 当你需要在系统中安装多个不同版本的 Python 或者需要在不同项目中使用不同的 Python 版本时,
pyenv是更好的选择。它允许你轻松安装和切换 Python 版本,并且与pyenv-virtualenv一起使用时,还可以管理虚拟环境。
pyenv+venv 结合使用
Option1, 推荐
pyenv install 3.10.9
python3.10 -m venv venv
source venv/bin/activate
deactivate
Option2, 这个方法需要提前安装pyenv-virtualenv,有点费劲不推荐
pyenv-virtualenv 是一个pyenv的扩展工具,结合了 pyenv 和 venv 的功能,允许你在安装多个 Python 版本的基础上创建虚拟环境。它的工作方式类似于 venv,但更加灵活,因为它可以创建不同 Python 版本的虚拟环境。
示例:
# 安装 pyenv-virtualenv(假设已安装 pyenv)
pyenv install 3.10.9
pyenv virtualenv 3.10.9 myenv
# 切换到虚拟环境
pyenv activate myenv
# 退出虚拟环境
pyenv deactivate