![Python版本冲突?优化?Python开发环境的技巧来了](http://img.jiangsulong.com/220408/1224221407-0.jpg)
文章插图
图源Unsplash
用Python编代码体验极佳,并随着新版本的发布越来越好!对于我而言,Python提供的大量免费函数库、高可读性的程序和新引入的类型注释让我沉迷其中无法自拔 。然而,数据科学家特别容易使自己的Jupyter notebook变得庞大而杂乱,或者写出一些难以理解的python文件 。此外,当一个项目依赖于同一函数库的不同版本时,常常发生版本冲突 。修复以上问题消耗大量时间,还经常导致其他项目出现问题 。必须找到避免这类问题的解决方式,为编写代码提供便利 。
在本篇文章中我将详细介绍常用的工具与技巧,希望能为读者提供帮助 。
Python开发环境
解释器
从使用Python时最重要的解释器开始 。你当然可以只下载最喜欢的Python版本,然后把所有内容放在里面 。但如果你的程序需要不同版本的Python,或依赖于同一第三方模块的不同版本,并需要在几个程序之间无缝切换时该怎么办?
Pyenv可以解决上述问题 。
Pyenv共包含三个工具,笔者将介绍其中两个:pyenv(用于安装python)和pyenv-virtualenv(用于配置全局工具) 。
通过下方网址安装pyenv 。
curl https://pyenv.run | bash
安装后,向.bashrc(或.zshrc)文件中添加下方代码,使得pyenv可用于设备 。
exportPATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
最后,重启设备 。现在可以使用pyenv安装几乎所有的python解释器,包括pypy、anaconda 。
需要注意的是,pyenv只在电脑上搭建本地python环境 。搭建python环境需要多种函数库 。在Ubuntu系统的电脑上,必须安装以下函数库以防止运行出现问题 。
sudo
apt-get installbuild-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev
zlib1g-dev libssl-dev openssllibgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-devlibffi-dev uuid-dev
现在,要安装python解释器只需要执行以下指令 。
pyenv installVERSION_YOU_WOULD_LIKE_TO_INSTALL
可以通过pyenv列出所有可用版本 。
pyenv install --list
为了使上述过程更加具体,在此安装python3.7.5并且设置其为默认的全局解释器 。
pyenv install 3.7.5
pyenv global 3.7.5
输入Python-version指令,屏幕将显示Python3.7.5 。
依赖性关系管理(DependencyManagement)
Python中的依赖性管理是项繁重的工作 。有许多工具可以帮助完成这项任务 。
我最常使用的工具是Poetry 。
Poetry可以帮助你简单地完成如下工作 。
· 管理项目依赖关系
· 通过虚拟环境将项目分开
· 轻松构建应用程序与函数库
笔者推荐通过以下方式安装poetry:
curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
另外一种依赖性管理的方式是使用pip和pyenv-virtualenv指令 。读者可能会问:为什么不只用pip?因为只用pip可能会在全局环境中安装poetry及其依赖项,这可能是你不需要也不想要的 。必要指令如下 。
# Create a virtual environmentcalled tools that is based on 3.7.5
pyenv virtualenv 3.7.5 tools
# Install poetry into the tools virtual env
pyenv activate tools
pip install poetry
# Check installed poetry version
poetry --version
# Leave the virtual env
pyenv deactivate
# This does not work yet
poetry --version
# Add your tools virtual env to the globally available ones
pyenv global 3.7.5 tools
# Now this works and you can start using poetry
poetry --version
在使用poetry创建第一个项目之前,建议先对其进行配置,这样就可以在项目目录中的.venv文件夹中创建虚拟环境 。当你使用VsCode或Pycharm这类集成开发环境时就会变得非常方便,因为它们可以立即识别并选择正确的解释器 。
poetry configsettings.virtualenvs.in-project true
注意,你只需设置一次配置,设置结果将在全局环境保留 。
终于完成了使用poetry创建项目的所有准备工作,太棒了!我把这个项目命名为dsexample,我知道这个名字很蠢,但我不想浪费时间去想一个更好的 。为了展示如何使用poetry,我添加了一个特定版本的pandas库,以及所有额外需求的fastapi框架 。
# Initialze a new project
poetry new dsexample
cd dsexample
# Add modules and create virtual environment.
poetry add pandas=0.25 fastapi --extras all
# As an example of how you could add a git module
poetry add tf2-utils --git git@github.com:Shawe82/tf2-utils.git
推荐阅读
- 苹果|苹果出手!关闭iOS 15.4验证通道:续航大翻车版本再见
- Python用了这么久,这七种功能你知道吗?
- 怎样用Python爬虫绕过登录?技巧在这里
- CentOS8 如何安装10.3最新版本的MariaDB
- 15分钟教你如何快速掌握Python爬虫核心技术,批量爬取网络图片
- python中的for循环语句怎么写
- Python爬取大量数据时,如何防止IP被封 !这点非常重要
- python实现客户端和服务器端传输图片的代码
- Python3多线程爬虫实例讲解
- Python3 基础语法