在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

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下