在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插件可以方便的管理对应的包源.

bash 复制代码
brew install pyenv

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

bash 复制代码
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虚拟环境,可以将每个项目与其他项目独立开来,互不影响,解决了依赖包版本冲突的问题。

bash 复制代码
brew install pyenv-virtualenv

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

bash 复制代码
eval "$(pyenv virtualenv-init -)"

mysql5.7

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

docker-desktop

Docker搭建mysql

  1. 拉取mysql官方镜像:
bash 复制代码
docker pull mysql:5.7
  1. Docker配置MySQL5.7容器并测试连接
bash 复制代码
mkdir -p ~/docker-images/mysql/data ~/docker-images/mysql/logs ~/docker-images/mysql/conf
  1. 在本地创建mysql容器的映射目录
bash 复制代码
mkdir -p ~/docker-images/mysql/data ~/docker-images/mysql/logs ~/docker-images/mysql/conf
  1. 使用 Docker 运行一个 MySQL 5.7 版本的容器。
bash 复制代码
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

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

bash 复制代码
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的镜像
bash 复制代码
docker pull redis
  1. 创建redis的挂载目录
bash 复制代码
mkdir -p ~/docker-images/redis/data ~/docker-images/redis/logs ~/docker-images/redis/conf
  1. 进入到刚刚创建的redis目录下:
bash 复制代码
cd ~/docker-images/redis

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

bash 复制代码
wget http://download.redis.io/redis-stable/redis.conf
chmod 777 redis.conf
  1. 设置redis.conf文件

推荐使用IDE等打开,因为这个文件文本内容很长

如果是使用vim编辑器,可以在正常模式(非插入模式)下,按下 "/" 键。输入您想要查找的内容,然后按 "Enter" 键。Vim将会把光标移动到下一个匹配的地方。如果您想继续查找下一个匹配的地方,可以按 "n" 键。如果想查找上一个匹配的地方,可以按 "N" 键。

bash 复制代码
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. 启动
bash 复制代码
➜  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中看到对应的容器及其映射端口关系了捏
相关推荐
denghai邓海15 分钟前
红黑树删除之向上调整
python·b+树
封步宇AIGC41 分钟前
量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
人工智能·python·机器学习·数据挖掘
何曾参静谧42 分钟前
「Py」Python基础篇 之 Python都可以做哪些自动化?
开发语言·python·自动化
Prejudices1 小时前
C++如何调用Python脚本
开发语言·c++·python
菲兹园长1 小时前
表的设计(MYSQL)
数据库·mysql
SoraLuna1 小时前
「Mac玩转仓颉内测版7」入门篇7 - Cangjie控制结构(下)
算法·macos·动态规划·cangjie
我狠狠地刷刷刷刷刷1 小时前
中文分词模拟器
开发语言·python·算法
Java Fans1 小时前
MySQL数据库常用命令大全(完整版——表格形式)
数据库·mysql
Jam-Young1 小时前
Python的装饰器
开发语言·python
白萝卜弟弟1 小时前
【MySQL】MySQL函数之JSON_EXTRACT
数据库·mysql·json