在mac上安装好python开发环境(pyenv、pyenv-virtualenv、docker-desktop、mysql5.7),一文解决环境问题

本文主要是介绍在mac上安装好python开发环境(pyenv、pyenv-virtualenv、docker-desktop、mysql5.7),一文解决环境问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

python各种版本管理器、包管理器实在是太多了,感兴趣的可以看我的另一篇博客:http://t.csdnimg.cn/SRRyC
但是说实话,建议不要看,直接入手本文如下的环境配置就好了。
保证都是比较前沿,运用范围都比较广的(本人踩过太多坑啦,服辣!

另外本文都是macOs Intel系统,建议win找另外的博客。而且至少保证环境安装了homebrew,如果没有,请看本人的另一篇博客:http://t.csdnimg.cn/FVuHa
最后,本篇文章其实90%都来自于一位同事在公司内部的分享,真的写得太好了,分享给大家而已hhh,填原创是因为转载需要填写原文地址。让我们一起感谢刘先生捏🙏

Python版本管理器-Pyenv

pyenv可以轻松切换全局解释器版本, 同时结合vitualenv插件可以方便的管理对应的包源.

brew install pyenv

根据自身环境,将下方内容加到对应文件中: .bashrc / .zshrc

export PYENV_ROOT=/usr/local/var/pyenv
export PATH="$PYENV_ROOT/bin:$PATH"
export PATH="$PYENV_ROOT/shims:$PATH"
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

验证安装是否成功: pyenv -v

如果在后续使用pyenv过程中发现相关报错,可以再见本人的另一篇博客:http://t.csdnimg.cn/G68Aj
特别是lzma模块没有安装这个错误比较常见。

Python包管理器-pyenv-virtualenv

pyenv-virtualenv用来创建独立的Python虚拟环境,可以将每个项目与其他项目独立开来,互不影响,解决了依赖包版本冲突的问题。

brew install pyenv-virtualenv

根据自身环境,将下方内容加到对应文件中: .bashrc / .zshrc

eval "$(pyenv virtualenv-init -)"

mysql5.7

最推荐这个博客:https://bbs.huaweicloud.com/blogs/351111

docker-desktop

Docker搭建mysql

  1. 拉取mysql官方镜像:
docker pull mysql:5.7
  1. Docker配置MySQL5.7容器并测试连接
mkdir -p ~/docker-images/mysql/data ~/docker-images/mysql/logs ~/docker-images/mysql/conf
  1. 在本地创建mysql容器的映射目录
mkdir -p ~/docker-images/mysql/data ~/docker-images/mysql/logs ~/docker-images/mysql/conf
  1. 使用 Docker 运行一个 MySQL 5.7 版本的容器。
docker run -p 3307:3306 --name mysql -v /Users/{用户名}/docker-images/mysql/conf:/etc/mysql/conf.d -v /Users/{用户名}/docker-images/mysql/logs:/logs -v /Users/{用户名}/docker-images/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD={你的本地mysql的root账户的密码} -d mysql:5.7

想要查看自己的用户名到底是什么,可以运行如下命令:

brew services list

看mysql那一栏对应的User是什么就是了。

下面是对于如上运行命令的详细解释:

  • docker run:Docker 的命令,用于运行一个新的容器。

  • -p 3307:3306:将容器的 3307 端口映射到宿主机的 3306 端口。

  • --name mysql:设置容器的名字为 mysql。

  • -v /Users/{用户名}/docker-images/mysql/conf:/etc/mysql/conf.d:将宿主机的 /root/mysql/conf 目录挂载到容器的 /etc/mysql/conf.d 目录。

  • -v /Users/{用户名}/docker-images/mysql/logs:/logs:将宿主机的 /root/mysql/logs 目录挂载到容器的 /logs 目录。

  • -v /Users/{用户名}/docker-images/mysql/data:/var/lib/mysql:将宿主机的 /root/mysql/data 目录挂载到容器的 /var/lib/mysql 目录。

  • -d:以后台模式运行容器。

  • mysql:5.7:要运行的 Docker 镜像的名字,这里是 MySQL 5.7 的镜像。

  1. 现在可以在Docker Desktop中看到对应的容器及其映射端口关系了捏

Docker搭建Redis

  1. 拉取redis的镜像
docker pull redis
  1. 创建redis的挂载目录
mkdir -p ~/docker-images/redis/data ~/docker-images/redis/logs ~/docker-images/redis/conf
  1. 进入到刚刚创建的redis目录下:
cd ~/docker-images/redis

下载redis.conf配置文件,并为其授予777权限

wget http://download.redis.io/redis-stable/redis.conf
chmod 777 redis.conf
  1. 设置redis.conf文件

推荐使用IDE等打开,因为这个文件文本内容很长
如果是使用vim编辑器,可以在正常模式(非插入模式)下,按下 “/” 键。输入您想要查找的内容,然后按 “Enter” 键。Vim将会把光标移动到下一个匹配的地方。如果您想继续查找下一个匹配的地方,可以按 “n” 键。如果想查找上一个匹配的地方,可以按 “N” 键。

bind 127.0.0.1 # 这行要注释掉,解除本地连接限制
protected-mode no # 默认yes,如果设置为yes,则只允许在本机的回环连接,其他机器无法连接。
daemonize no # 默认no 为不守护进程模式,docker部署不需要改为yes,docker run -d本身就是后台启动,不然会冲突
requirepass 123456 # 设置密码
appendonly yes # 持久化

其中requirepass 原本就是被注视掉的语句,可能有点难找,他的上文是:

# The requirepass is not compatible with aclfile and the ACL LOAD
# command, these will cause requirepass to be ignored
#
  1. 启动
➜  redis docker run --name redis \
-p 6379:6379 \
-v /Users/{用户名}/docker-images/redis/redis.conf:/etc/redis/redis.conf \
-v /Users/{用户名}/docker-images/redis:/data \
-d redis redis-server /etc/redis/redis.conf --appendonly yes
  • -p 6379:6379:端口映射,前面是宿主机,后面是容器。

  • –name redis:指定该容器名称。

  • -v 挂载文件或目录:前面是宿主机,后面是容器。

  • -d redis redis-server /etc/redis/redis.conf:表示后台启动redis,以配置文件启动redis,加载容器内的conf文件。

  • appendonly yes:开启redis 持久化。

  1. 现在可以在Docker Desktop中看到对应的容器及其映射端口关系了捏

这篇关于在mac上安装好python开发环境(pyenv、pyenv-virtualenv、docker-desktop、mysql5.7),一文解决环境问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/919798

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用