标签 Python 下的文章 - 🥝 E 家 分 享 🥝
首页
📋 留言板
🔗 友情链接
🛠️ E家百宝箱
❤️ 关于
推荐
🔍 VPS监控
🐉 青龙面板
💽 E家网盘
----------
🔗 CloudFlare
🔗 甲骨文云
🔗 RackNerd
搜 索
1
自动提取 ChromeGo 一键翻墙包内的免费节点
145 阅读
2
【汇总:免费节点 - 每周更新】
114 阅读
3
GigaFile - 日本免费大文件加密分享服务,最长保留文档100天
71 阅读
4
【E家分享月刊系列】2024-12
56 阅读
5
CloudFlare WARP 免费 VPN 搭建教程
55 阅读
精选网站
网站搭建
科学上网搭建
有感而发
软件技巧
Excel技巧
WordPress技巧
登录
搜 索
标签搜索
WordPress
脚本
GitHub
科学上网
哈佛管理导师
E家分享月刊系列
V2ray
Mac软件
AI
Cloudflare
Docker
免费节点
建站在线工具
Excel技巧
Notion
Nginx
ChatGPT
图像编辑
免费图床
网盘资源
E家之长
累计撰写
195
篇文章
累计收到
245
条评论
首页
栏目
精选网站
网站搭建
科学上网搭建
有感而发
软件技巧
Excel技巧
WordPress技巧
页面
📋 留言板
🔗 友情链接
🛠️ E家百宝箱
❤️ 关于
推荐
🔍 VPS监控
🐉 青龙面板
💽 E家网盘
----------
🔗 CloudFlare
🔗 甲骨文云
🔗 RackNerd
用户登录
登录
找到
1
篇与
Python
相关的结果
2023-09-02
折腾指南:Python 开发环境管理
本文作者:Latexbeta 转载地址:https://sspai.com/post/82499前言本文旨在提供一个虚拟环境管理方式参考,所提供的虚拟环境管理方式经过作者测试,证实有效。网上这么多 Python 虚拟环境管理的文章或者教程,本文有何存在的必要:第一个原因是,网上提供的教程很多只提供了单一的虚拟环境管理工具,作者由于喜欢折腾,尝试过不同的工具,可以提供一些比较意见供参考。第二个原因是作者折腾过不同的系统,提供的经验适用于 Windows 10/11, Ubuntu 和 Windows Subsystem for Linux (WSL 2).本文不是很友好的新手教程,读者需要有一定的基础,文中使用的一些工具,如 Windows PowerShell 和 Bash,需要读者有一定的了解。本文按如下脉络进行,首先介绍为什么需要进行虚拟环境管理,然后介绍了作者使用过的几种虚拟环境管理实例,最后提供了一些延申参考。由于作者非计算机科班,文章内容只是自己的经验,所以不可避免带有作者的狭隘偏见。引言:为什么需要进行虚拟环境管理Python 开发环境管理分为两部分,一个是 Python 版本管理,一个是虚拟环境管理。很多时候受限于我们的项目依赖,在开发不同的项目时需要用到不同的 Python 版本,例如 TensorFlow 2.10 就只能支持 3.7-3.10 的 Python 版本,但是最新版的 TensorFlow 就支持最新的 Python 3.11. 作者由于同时使用 TensorFlow 和 PyTorch 两个深度学习框架,就在电脑上安装了三个 Python 版本。如果我们不使用虚拟环境管理的话,我们所有的包都会安装在系统全局 Python (Global Python, 也就是系统默认的 Python 版本) 的目录下,这会导致两个问题:第一个是由于在同一个目录下只能安装某一个包的一个版本,如果有两个项目对同一个依赖包有不同的版本需求,就会导致依赖冲突,给开发带来问题。第二个是,哪怕没有依赖冲突的问题,所有的依赖包安装在同一个目录下,会导致导出的依赖文件过于冗余,这在进行项目开源的时候是非常忌讳的(当然这个问题也存在简单的解决方法)。基于上述两个原因,Python 开发环境管理的最佳实践是为不同的项目建立不同的虚拟环境。为了满足项目依赖对于 Python 版本的要求,我们在建立虚拟环境的时候,就需要指定 Python 版本,具体指定 Python 版本的方法会在下面的不同实践中具体介绍。虚拟环境管理最佳实践(以 virtualenv 为例)利用 Python 自带的 venv 管理虚拟环境利用 Python 自带的 venv 管理虚拟环境有两个主要的问题:创建虚拟环境的时候无法指定 Python 的版本。使用 venv 的时候需要指定路径,比较麻烦。基于上述两个原因,我很快就弃用了 venv。由于作者使用的时间太短,关于 venv 的介绍和详细使用,可以参考少数派站内的两篇文章。关于 virtualenv,作者在查资料的时候发现二者同源,是 venv 的超集,所以对它也完全没有尝试。利用 Miniconda/Anaconda 同时管理 Python 版本和虚拟环境Miniconda 和 Anaconda 都打包了 Conda 这一包管理器,二者的区别在于,Miniconda 里面只包含了 Conda、Python 和一些必备的包,是最小的 Conda 安装环境;而 Anaconda 则提供了很多额外的数据科学或者机器学习的依赖包,例如安装完成之后就可以使用 Python 的IDE Spyder,导致其安装包非常臃肿。由于 Anaconda 中的很多工具包我们都用不上,所以建议直接 Miniconda,遇到需要的依赖的时候直接安装即可。由于 Windows 系统没有自带 Python 安装,所以如果直接安装 Miniconda / Anaconda,系统的默认 Python 版本就会是 Miniconda / Anaconda 的 Python 版本。Windows下载并安装 Miniconda / Anaconda,只需要按照安装提示完成安装即可,安装过程中需要注意的是添加到系统环境变量中的这一步,建议将其添加到系统环境变量(Anaconda 官方安装教程)。创建虚拟环境conda create -n venv_name python=3.11 # 创建虚拟环境并指定 Python 版本 conda activate venv_name # 激活虚拟环境 conda deactivate # 离开虚拟环境Ubuntu/WSL由于 Ubuntu/WSL 在 Terminal 里操作非常方便,流程和 Windows 中相同,只是以命令行的形式进行,故而提供完整的命令行参考。sudo apt update && sudo apt upgrade sudo apt install wget wget https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-Linux-x86_64.sh # 下载 Miniconda 安装文件 sh ./Miniconda3-py311_23.5.2-0-Linux-x86_64.sh # 安装 Miniconda,需要同意用户协议 conda create -n venv_name python=3.11 # 创建虚拟环境并指定 Python 版本 conda activate venv_name # 激活虚拟环境利用 Pyenv 管理 Python 版本,Pipenv 管理虚拟环境Windows通过 Windows PowerShell 安装 Pyenv,然后重启电脑Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1" pyenv --version # 查看 Pyenv 的版本利用 Pyenv 安装指定版本的 Python,设置默认版本 Python (Global Python)pyenv install -l # 查看可以安装的 Python 列表 pyenv install 3.9.13 pyenv install 3.11.1 pyenv versions # 查看电脑中已安装 Python 版本 pyenv global 3.11.1 # 设置默认版本 Python pyenv version # 查看默认版本 Python设置完 Global Python 后,需要将默认版本 Python 添加到系统环境变量中,否则在使用 Pipenv 时会报错:C:\Users\*****\AppData\Roaming\Python\Python311\Scripts # 如果不添加到环境变量,使用 Pipenv 时会报此错误 pipenv : 无法将“pipenv”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。安装 Pipenvpip install pipenvPipenv 创建虚拟环境cd project_dir # 切换到项目文件夹 pipenv install --python 'C:\Users\*****\.pyenv\pyenv-win\versions\3.9.13\python39.exe’ # 创建虚拟环境,此时可以指定 Python 版本 pipenv shell # 启动虚拟环境 pipenv install package # 安装需要的包 exit # 离开虚拟环境这里需要注意的是,虽然创建虚拟环境是在项目文件夹,但是不同项目的虚拟环境都在同一个目录下管理,不像 venv 会在项目文件夹下。常用命令pipenv install package # 安装 pipenv uninstall package # 卸载 pipenv graph # 查看按照包的依赖关系 pipenv --venv # 查看虚拟环境执行文件路径 pipenv --rm # 移除虚拟环境Ubuntu/WSL在 Ubuntu/WSL 中使用 Pyenv 和 Pipenv 的流程还是和 Windows 下相同,所以还是提供完整的命令行参考。首先安装 Pyenvgit clone https://github.com/pyenv/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc exec "$SHELL"利用 Pyenv 安装指定版本的 Python,设置默认版本 Python (Global Python)# Installing libraries that need for installing Python sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev # Installing Python pyenv install 3.9.13 pyenv install 3.11.1 pyenv versions # 查看电脑中已安装 Python 版本 pyenv global 3.11.1 # 设置默认版本 Python pyenv version # 查看默认版本 Python安装 Pipenvpip install pipenv # 使用 pip3 安装 pipenv export PATH="/home/user/.local/bin:$PATH" # 添加路径到 PATH echo "$" # show path one directory per line 利用 Pipenv 创建虚拟环境cd project_dir pipenv install --python 3.9 # 不用指定 Python 路径 pipenv shell # 启动虚拟环境 pipenv install package # 安装需要的包 exit # 离开虚拟环境到这里可以总结一下,利用 Miniconda/Anaconda 管理开发环境和利用 Pyenv 和 Pipenv 管理开发环境的一个小小的区别:利用 Miniconda/Anaconda 建立虚拟环境的时候,我们指定的 Python 是在此时安装或者确认的,也就是一步到位;利用 Pipenv 建立虚拟环境的时候,我们是需要在已经安装了指定 Python 版本的基础上指定本地 Python 版本,基于此版本的 Python 来建立的虚拟环境,也就是分两步走。延申:IDE中使用虚拟环境VS Code 中使用虚拟环境 Using Python Environments in Visual Studio CodePyCharm 中使用虚拟环境 Configure a virtual environment | PyCharm Documentation (jetbrains.com)在 Neovim 中使用虚拟环境是作者计划中的下一篇文章。【END】
2023年09月02日
2 阅读
0 评论
0 点赞