macos搭建python开发环境
Homebrew
复制Homebrew官网的安装命令进行安装(需要良好的网络环境)
cmake nvm
通过homebrew安装cmake
、nvm
等开发工具
可能会遇到的安装失败
Searching for similarly named formulae... Error: No similarly named formulae found. It was migrated from homebrew/cask to homebrew/core. # 解决 # because you can't brew untap homebrew/core rm -rf $(brew --repo homebrew/core) brew tap homebrew/core
vim配置语法高亮
复制默认配置文件cp /usr/share/vim/vimrc ~/.vimrc
或cp /usr/share/vim/vimrc /etc/vimrc
编辑配置文件
- 增加以下代码实现语法高亮的功能
" 设置主题 colorscheme desert " 语法高亮 syntax on " 查找结果 高亮显示 set hlsearch " 关闭兼容模式 set nocompatible " 启用backspace set backspace=indent,eol,start
- 直接使用以下配置 (vi 亦可用)
" 中文乱码 if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set fileencodings=ucs-bom,utf-8,latin1 endif set nocompatible " Use Vim defaults (much better!) set bs=indent,eol,start " allow backspacing over everything in insert mode "set ai " always set autoindenting on "set backup " keep a backup file set viminfo='20,\"50 " read/write a .viminfo file, don't store more " than 50 lines of registers set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time " 上次打开位置 " Only do this part when compiled with support for autocommands if has("autocmd") augroup redhat autocmd! " In text files, always limit the width of text to 78 characters " autocmd BufRead *.txt set tw=78 " When editing a file, always jump to the last cursor position autocmd BufReadPost * \ if line("'\"") > 0 && line ("'\"") <= line("$") | \ exe "normal! g'\"" | \ endif " don't write swapfile on most commonly used directories for NFS mounts or USB sticks autocmd BufNewFile,BufReadPre /media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp " start with spec file template autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec augroup END endif if has("cscope") && filereadable("/usr/bin/cscope") set csprg=/usr/bin/cscope set csto=0 set cst set nocsverb " add any database in current directory if filereadable("cscope.out") cs add $PWD/cscope.out " else add database pointed to by environment elseif $CSCOPE_DB != "" cs add $CSCOPE_DB endif set csverb endif " Switch syntax highlighting on, when the terminal has colors " Also switch on highlighting the last used search pattern. if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif filetype plugin on if &term=="xterm" set t_Co=8 set t_Sb=^[[4%dm set t_Sf=^[[3%dm endif " Don't wake up system with blinking cursor: " http://www.linuxpowertop.org/known.php let &guicursor = &guicursor . ",a:blinkon0" ~
py3 virtualenv 虚拟环境
https://zhuanlan.zhihu.com/p/137624513
- 安装虚拟环境与虚拟环境管理
pip3 install virtualenv pip3 install virtualenvwrapper
- 创建虚拟环境存储目录。默认为
~/.virtualenvs
。建议创建默认目录,也可自定义目录# 使用默认 mkdir $HOME/.virtualenvs # 自定义 mkdir ~/python_envs
- 查看python3解释器与虚拟环境管理脚本位置
which python3 which virtualenvwrapper.sh
- zsh修改
.zshrc
将mysql配置添加到环境变量(bash修改.bashrc
),完成后先不进行source# 第二步中创建存储目录pwd # - 使用默认 export WORKON_HOME=$HOME/.virtualenvs # - 使用自定义 export WORKON_HOME='/Users/<username>/python_envs' # 第三步中python3解释器的位置 export VIRTUALENVWRAPPER_PYTHON='/Library/Frameworks/Python.framework/Versions/3.7/bin/python3' source /Library/Frameworks/Python.framework/Versions/3.6/bin/virtualenvwrapper.sh
- 执行一次虚拟环境管理脚本,后执行source使配置生效
# 第三步中虚拟环境管理脚本位置 . /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh # 使配置生效 source ~/.zshrc
至此完成了虚拟环境的创建。以下是常用指令
mkvirtualenv 环境名
创建虚拟环境workon
查看全部虚拟环境workon 环境名
使用已有环境deactivate
退出虚拟环境rmvirtualenv 环境名
删除已有虚拟环境
说明: 在自定义目录的情况下,在创建新项目时仍可能生成~/.virtualenvs
并在其中生成项目的虚拟环境文件,因此建议使用~/.virtualenvs
目录进行创建
MySQL安装
- mysql官网下载所需的社区版本桌面端APP
- 在安装完成后,安装器会显示root用户的初始密码,需要记录
- 在macos的系统偏好设置中点击MySQL启动MySQL服务
- zsh修改 .zprofile 将mysql配置添加到环境变量(bash修改 .bash_profile),完成后进行
source
export PATH=${PATH}:/usr/local/mysql/bin export PATH=${PATH}:/usr/local/mysql/bin/mysql_config
- 终端中使用初始密码登录mysql
mysql -uroot -p初始密码
- 执行下列命令修改root用户的密码
# 设置密码 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword'); # 刷新权限 FLUSH PRIVILEGES;
mongo安装
- 官网下载所需的社区版本
- 解压数据包并放入对应位置
tar -zxvf mongodb-osx-ssl-x86_64-x.x.x.tgz sudo mkdir /usr/local/mongodb sudo mv mongodb-macos-x86_64-6.0.4/* /usr/local/mongdb/
- zsh修改 .zprofile 将mongo配置添加到环境变量(bash修改 .bash_profile ),完成后进行
source
export PATH=${PATH}:/usr/local/mongodb/bin
启动:启动参数可使用mongod --help
查看,--dpath
用于指定数据存放位置
sudo mongod --dbpath /var/mongo/
docker安装
参照docker官方文档安装docker桌面端APP
具体命令与说明可参考相关文章
如需切换源:在设置中的docker engine选项json中添加配置
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
redis安装
redis官网下载所需版本的redis数据包
解压数据包并放入对应位置
tar -zxvf redis-x.x.x.tar.gz sudo mkdir /usr/local/redis sudo mv redis-x.x.x/* /usr/local/redis/ cd /usr/local/redis # 进行环境测试,查看环境测试是否成功 sudo make test # 生成运行文件 sudo make install
启动与关闭
# 启动 cd /usr/local/redis ./bin/redis-server etc/redis.conf # 关闭 redis-cli shutdown
配置文件部分配置项说明
bind 127.0.0.1
监听ip,如需远程连接则需取消bind配置项protected-mode yes
只允许本机连接,如需远程连接则需要设置为no
requirepass xxx
设置redis连接密码dir /var/lib/redis
设置数据库快照文件写入位置
redis的开机启动
参考:http://www.js2node.com/redis-io/install-redis-io-2-4-17-on-mac-osx-as-service
给mac添加一个启动项
在 ~/Library/LaunchAgents 目录下自己建立一个 redis.plist
sudo vim redis.plist
输入以下内容
Labelio.redis.redis-serverProgramArguments/usr/local/bin/redis-server/usr/local/etc/redis.confRunAtLoad
执行命令
sudo launchctlload/Library/LaunchDaemons/io.redis.redis-server.plist
打开关闭
sudo launchctlstartio.redis.redis-server$ sudo launchctl stop io.redis.redis-server
elasticsearch
下载并解包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz tar -xvf elasticsearch-7.8.0-linux-x86_64.tar.gz .
配置java虚拟机,编辑配置
config/jvm.options
# 内存信息 -Xms1g -Xmx1g
配置es,编辑es配置文件
elasticsearch-7.8.0/config/elasticseach.yml
,常用配置如下# 当前节点名称 - 自定义节点名称 node.name: <node_name> # Path to directory where to store the data (separate multiple locations by comma): path.data: /data/elasticsearch # Path to log files: path.logs: /data/logs/elasticsearch # # 设置当前的IP地址,通过指定相同网段的其他节点会加入该集群中 network.host: 0.0.0.0 # # 设置对外服务的http端口 http.port: 9200 # 把当前节点当做集群的主节点 - 内网ip + 自定义节点名称 discovery.seed_hosts: ["<host_ip>"] cluster.initial_master_nodes: ["<node_name>"] # 允许跨域访问 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization xpack.security.enabled: true xpack.security.transport.ssl.enabled: true
运行。linux下不可使用root用户运行。需要通过
useradd elsearch
与su - elsearch
创建用户后执行以下内容cd elasticsearch-7.8.0/bin ./elasticsearch
fastdfs安装
使用docker进行fastdfs的安装
- 拉取镜像
docker pull delron/fastdfs
- linux开启tracker服务。指明名称,网络,本地到容器的卷宗映射
# --name tracker 容器名 delron/fastdfs tracker 镜像执行的命令 sudo docker run -dit --name tracker --network=host -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
- linux开启storage服务,指明名称,网络,tracker服务的内网地址,本地到容器的卷宗映射
sudo docker run -dti --name storage --network=host -e TRACKER_SERVER=192.168.xxx.xxx:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
- 由于macos不能使用
host
网络绑定端口,需要创建docker桥接网络(默认创建的就是桥接模式)docker network create my-net
- macos通过桥接网络开启tracker服务
docker run -d -p 22122:22122 --name tracker --net=my-net -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
- macos通过桥接网络开启storage服务 通过8888与23000端口的桥接
# 方法一:宿主机机局域网ip - 用于支持局域网访问 docker run -d -p 8888:8888 -p 23000:23000 --name storage --net=my-net -e TRACKER_SERVER=192.168.1.8:22122 -v /var/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage # 方法二:容器间的通信,可使用容器名 docker run -d -p 8888:8888 -p 23000:23000 --name storage --net=my-net -e TRACKER_SERVER=tracker:22122 -v /var/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
- 由于storage容器注册在tracker容器中用的是容器网段ip(172.19.0.1),所以tracker在跟storage通信时,接收到的storage的地址也是也是该ip,导致宿主机内环境在上传时,源码中通过tracker返回的storage创建storage连接对象时,无法访问storage(此时需要127进行访问)。需要将宿主机中请求172.19.0.1的请求都默认为docker中的请求。在客户端访问172.19.0.1:23000时,会转向访问本机的127.0.0.1:23000进入docker中的tracker服务
- macos参照命令并建立172的端口映射,参考文章内10开头的端口映射暂时不用。
sudo ifconfig lo0 alias 172.19.0.1
安卓SDK与NDK安装
JRE
系统自带java环境,编辑 ~/.zprofile 配置一些环境变量供IDE使用
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib
SDK
下载压缩包
将以下内容加入 ~/.zprofile ,注意修改用户名
export ANDROID_HOME=/Users/<username>/android-sdk-macosx export PATH=${PATH}:${ANDROID_HOME}/platform-tools export PATH=${PATH}:${ANDROID_HOME}/tools export PATH=${PATH}:${ANDROID_HOME}/build-tools/29.0.3
NDK
下载压缩包。不同版本ndk的下载链接https://www.jianshu.com/p/c5b59cbe65f7,文本使用 r10e
将下载得到的bin文件,进行解压
# 添加文件的可执行权限 chmod a+x android-ndk-r10e-darwin-x86_64.bin # 解压文件 sudo ./android-ndk-r10c-darwin-x86_64.bin
将以下内容加入 ~/.zprofile ,注意修改用户名
export ANDROID_NDK_ROOT=/Users/<username>/android-ndk-r10e export NDK_ROOT=/Users/<username>/android-ndk-r10e export NDK_ROOT_quick=/Users/<username>/android-ndk-r10e export PATH=${PATH}:${ANDROID_NDK_ROOT}/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin
gradle
- 在官网下载页面中选择对应版本点击 binary-only 下载压缩包并解压(下载7.0+版本)
- 配置环境变量,注意修改用户名
export GRADLE_HOME=/Users/<username>/gradle-7.5.1 export PATH=${PATH}:${GRADLE_HOME}/bin
- 使用命令
gradle -v
确认是否安装成功
安装maven
前往apche官网下载maven安装包
使用命令
tar -zxvf apache-maven-x.x.x-bin.tar.gz
或直接双击进行解压将得到的文件夹放入 /usr/local/ 并配置环境变量 ~/.zprofile
export MAVEN_HOME=/usr/local/apache-maven-x.x.x export PATH=$MAVEN_HOME/bin:$PATH
参考文章
python虚拟环境 https://zhuanlan.zhihu.com/p/137624513
mysql安装 https://jingyan.baidu.com/article/fa4125ac0e3c2928ac709204.html
mongo安装 https://www.jianshu.com/p/bb77f8be67f4
docker命令参考 https://www.jianshu.com/p/6067a74fca3c
redis安装 https://yijiebuyi.com/blog/d8ab4b444c16f42cefe30df738a42518.htmlhttps://www.jianshu.com/p/6b5eca8d908b
fastdfs安装 https://blog.csdn.net/zhujuntiankong/article/details/106864724