天涯论坛

 找回密码
 立即注册
搜索
查看: 53|回复: 4

怎么样在你的Android手机上配置 Python 环境?

[复制链接]

2996

主题

182

回帖

9920万

积分

论坛元老

Rank: 8Rank: 8

积分
99209276
发表于 2024-8-17 18:23:04 | 显示全部楼层 |阅读模式

举荐学习

金三即过,这300道python高频面试都没刷,银四怎么闯?

本文旨在讲解怎样在Android平板或手机上搭建Python研发环境,帮忙Python初学者有效利用碎片化时间进行学习,从而达到良好的学习效果。

针对大部分初学Python的人来讲因为工作、生活等原因常常没法进行连贯、系统的学习。初学者为了利用上下班通勤等碎片化时间进行学习,一般会在平板上观看学习视频并做记录。虽然这种办法很好,但效果还是不如边学边练来得好。

因此呢,你必须的是这个:

不多说,让咱们起始吧!

1、Termux安装与配置

1. 系统需求

Android 7.0以上的平板或手机。这儿意见运用兼顾了便携性和屏幕尺寸的8寸平板。2G以上可用空间。因为必须安装各样软件包,对存储空间的消耗还是比很强的。

2. Termux安装

在安装Termux前,必须认识一下什么是Termux。

Termux 是一款支持 Linux 环境的 Android 终端模拟器APP。你无需对手机进行root或额外设置就可运用。这款APP会在手机中自动安装一个最小化基本系统,并支持运用 APT 包管理工具安装软件。

日前Termux官网(https://termux.com/意见运用F-Droid进行安装,再也不支持经过Google Play进行安装。

主程序Termux下载位置https://f-droid.org/repo/com.termux_106.apk美化工具Termux:Styling下载位置https://f-droid.org/repo/com.termux.styling_29.apk

3. Termux基本操作

快捷键Ctrl + A -> 将光标移动到行首 Ctrl + E -> 将光标移动到行尾 Ctrl + C -> 中止当前进程 Ctrl + D -> 注销终端会话 Ctrl + K -> 从光标删除到行尾 Ctrl + U -> 从光标删除到行首 Ctrl + L -> 清除终端 Ctrl + Z -> 挂起(发送SIGTSTP到)当前进程 音量加 + E -> Esc键 音量加 + T -> Tab键 音量加 +1 -> F1(音量增多 + 2 → F2…以此类推) 音量加 + 0-> F10 音量加 + B -> Alt + B,运用readline时返回一个单词 音量加 + F -> Alt + F,运用readline时转发一个单词 音量加 + X -> Alt+X 音量加 + W -> 向上箭头键 音量加 + A -> 向左箭头键 音量加 + S -> 向下箭头键 音量加 + D -> 向右箭头键 音量加 + L -> | (管道字符) 音量加 + H -> 〜(浪花号字符) 音量加 + U -> _ (下划线字符) 音量加 + P -> 上一页 音量加 + N -> 下一页 音量加 + . -> Ctrl + \(SIGQUIT) 音量加 + V -> 表示音量掌控 音量加 + Q -> 切换表示的功能键视 音量加 + K -> 切换表示的功能键视图

4. 修改软件源

安装完Termux后,运用如下命令自动替换官方源为清华镜像源:

sed -i s@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@ $PREFIX/etc/apt/sources.list sed -i s@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@ $PREFIX/etc/apt/sources.list.d/game.list sed -i s@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@ $PREFIX/etc/apt/sources.list.d/science.list apt update && apt upgrade

5. 安装基本组件

在配置Python研发环境前,咱们必须运用如下命令安装有些基本软件包:

p公斤 install -y zsh curl wget build-essential p公斤 install -y git python nodejs-lts perl ipython p公斤 install -y neovim lazygit ranger fzf

2、终端配置

1. Shell配置

安装oh-my-zsh

Shell的类型有非常多种,Termux下默认运用的是bash这儿运用功能更强大的zsh来代替bash。为了让初学者更好地运用zsh必须先安装高档大气上档次,狂拽炫酷吊炸天的oh-my-zsh

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装过程中,会提示是不是切换shell为zsh,输入回车Y就可

另外,还必须安装zsh-autosuggestions插件,用于自动补全:

gitclone https://github.com/zsh-users/zsh-autosuggestions${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

oh-my-zsh必须运用nanoneovim等终端编辑器修改.zshrc文件来进行配置,在plugins部分添加插件支持:

plugins=( git python colorize zsh-interactive-cd zsh-navigation-tools zsh-autosuggestions )

2. 主题美化

2.1 配色与字体

长按屏幕,点击More选取Style能够选取配色和字体,举荐运用Neon配色和JetBrains Mono字体,能够经过修改~/.termux/目录下的colors.propertiesfont.ttf文件进行自定义。

2.2 主题配置

接下来安装powerlevel10k的主题:

安装

输入如下命令下载powerlevel10k:

git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

修改.zshrc文件,将ZSH_THEME="robbyrussell"改为ZSH_THEME="powerlevel10k/powerlevel10k"

配置

重新打开Termux,输入p10k configure进入powerlevel10k的配置界面。第1次会自动下载默认字体,安装后会自动退出,重新打开Termux就可

能够按照配置向导的提示,定制适合自己风格的终端界面。

3. 启用vi模式(可选)

Termux命令行中修改已然输入的命令比较麻烦。经过开启vi模式,用户能够像在vi编辑器里同样进行操作。针对vi用户来讲,进入这种模式后,编辑和修改命令就显出非常得心应手了。

运用nanoneovim等终端编辑器修改.zshrc文件来进行配置,在plugins部分添加vi-mode项,开启vi模式。在命令行状态下,按Esc键,就可进入vi模式的普通模式

不外在默认的vi模式存在按键bug,必须.zshrc文件最后添加如下配置:

# Better searching in command mode bindkey -M vicmd ? history-incremental-search-backward bindkey -M vicmd / history-incremental-search-forward # Beginning search with arrow keys bindkey "\033[1~" beginning-of-line bindkey "\033[4~" end-of-line bindkey ^[[3~ delete-char bindkey "^[OA" up-line-or-beginning-search bindkey "^[OB" down-line-or-beginning-search bindkey -M vicmd "k"up-line-or-beginning-searchbindkey -M vicmd "j" down-line-or-beginning-search

3、Python包安装与配置

1. 安装环境配置

# 配置pypi源 pip install pip -U pip config setglobal.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 依赖项 pip install wheel pip install setuptools --upgrade

2 Python包安装

安装numpyscipy# 添加第三方仓库 curl -LO https://its-pointless.github.io/setup-pointless-repo.sh bash setup-pointless-repo.sh # 从仓库安装numpy scipy p公斤 install -y numpy scipy安装lxml# 安装lxml的依赖项 p公斤 install -y libxml2 libxslt # 安装lxml pip install lxml安装pillow# 安装pillow的依赖项 p公斤 install -y libjpeg-turbo libtiff p公斤 install -y littlecms tk libwebp libsodium # 安装pillow pip install pillow安装matplotlib# 安装matplotlib的依赖项 p公斤 install -y freetype libpng pip install kiwisolver cycler pip install pyparsing python-dateutil # 安装matplotlib pip install matplotlib安装pandas# 安装pandas的依赖项 pip install -y pytz cython # 安装pandas export CFLAGS="-Wno-deprecated-declarations -Wno-unreachable-code" pip install pandas安装jupyter# 安装jupyter依赖项 p公斤 install -y libzmq libcrypt p公斤-config # 安装jupyter pip install jupyter

待安装完成,输入jupyter notebook起步,将位置复制到浏览器中就可打开Jupyter。

四、IPython和NeoVim配置

针对期盼在终端下进行运用朋友举荐IPython+NeoVim组合。

1. IPython配置

安装IPython# 安装yapf pip install yapf # 安装Pygments pip install pygments # 安装ipython pip install ipython创建配置文件

运用ipython profile create命令在~/.ipython/profile_default/目录下的创建ipython_config.py配置文件。

修改配置文件

运用neovim、nano等终端编辑器修改~/.ipython/profile_default/目录下的ipython_config.py文件,添加如下配置:

# 配置终端颜色 c.InteractiveShell.colors = Linux c.TerminalInteractiveShell.autoformatter = yapf # 配置高亮方法,可经过pygmentize -L styles浏览所有可选配置 c.TerminalInteractiveShell.highlight_style = monokai # 配置魔术命令%editor运用的编辑器 c.TerminalInteractiveShell.editor = nvim

2. NeoVim配置

在配置NeoVim前,必须安装pynvim插件,以扩展NeoVim对Python的支持。

pip install pynvim创建init.vim文件进行基本配置

在命令行下,经过nvim命令进入NeoVim编辑器,输入:e $MYVIMRC编辑NeoVim配置文件,运用:w进行保留,基本设置如下:

" 通常设置 set nocompatible "关闭与vi的兼容模式 set number "表示行号 set nowrap "不自动折行 set showmatch "表示匹配的括号 set scrolloff=3 "距离顶部和底部3行" set encoding=utf-8 "编码 set fenc=utf-8 "编码 set fileencodings=utf-8 set hlsearch "搜索高亮 syntax on "语法高亮 set tabstop=4 "tab宽度 set shiftwidth=4 set smarttab set backspace=indent,eol,start set expandtab "tab替换为空格键 set fileformat=unix "保留文件格式 set splitbelow set cmdheight=2 set completeopt=longest,menu set splitright set foldmethod=indent set foldlevel=99 " 设置空格为leader键 let mapleader=" "运用vim-plug安装NeoVim插件

vim-plug是一款Vim插件管理工具,支持异步并行,能够快速安装、更新或卸载插件。能够经过如下命令进行安装,或手动下载plug.vim文件,复制到在~/.config/nvim/autoload文件夹中。

curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

运用vim-plug时,必须在init.vim中添加下列代码块。

" vim-plug插件管理 call plug#begin(~/.config/nvim/plugged) Plug junegunn/vim-plug call plug#end()

保留后,在普通模式下输入:so %使配置文件生效,再经过lugInstall进行安装。

常用插件及设置

下面列举了一下常用插件和基本设置:

call plug#begin(~/.config/nvim/plugged) Plug junegunn/vim-plug " git支持 Plug tpope/vim-fugitive " Python自动缩进插件 Plug vim-scripts/indentpython.vim " 项目管理工具 Plug mhinz/vim-startify " 快速对齐插件 Plug junegunn/vim-easy-align " 当前光标下的单词增多下划线 Plug itchyny/vim-cursorword " 快速选取插件 Plug tpope/vim-surround " 自定义代码片断 Plug honza/vim-snippets " 语法高亮支持 Plug sheerun/vim-polyglot " 主题、状态栏设置 Plug haishanh/night-owl.vim Plug vim-airline/vim-airline Plug vim-airline/vim-airline-themes Plug ryanoasis/vim-devicons " coc扩展 Plug neoclide/coc.nvim, {branch: release} " fzf模糊查询 Plug junegunn/fzf, { dir: ~/.fzf, do: ./install --all } Plug junegunn/fzf.vim " whichkey快捷菜单 Plug liuchengxu/vim-which-key " 浮动窗口支持 Plug voldikss/vim-floaterm " ranger文件管理器支持 Plug kevinhwang91/rnvimr call plug#end() " 启用标签栏 let g:airline#extensions#tabline#enabled = 1 " 支持图标字体 let g:airline_powerline_fonts = 1 " 设置状态栏主题 let g:airline_theme=night_owl " 设置主题 set termguicolors let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum" let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum" syntax enable colorscheme night-owl
安装、配置coc.nvim扩展

coc.nvim是一款支持扩展的插件,类似于油猴,能够经过安装扩展,以实现像Vscode同样运用NeoVim,下面列举了Python关联的coc扩展和配置:

" coc扩展 let g:coc_global_extensions = [ \coc-json, \coc-pyright, \coc-snippets, \coc-xml, \coc-explorer, \coc-prettier, \coc-highlight] " 运用tab键进行补全选取 inoremap <silent><expr> <TAB> \ pumvisible() ? "\<C-n>" : \ <SID>check_back_space() ? "\<TAB>" : \ coc#refresh() inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" function! s:check_back_space() abort let col = col(.) - 1 return !col || getline(.)[col - 1] =~# \s endfunction " 运用回车进行补全选取 inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm() \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" " Highlight the symbol and its references when holding the cursor. autocmd CursorHold * silent call CocActionAsync(highlight) "Add `:Format`command to format current buffer. command! -nargs=0 Format :call CocAction(format) " Add `:Fold` command to fold current buffer. command! -nargs=? Fold :call CocAction(fold, <f-args>) " Add `:OR` command for organize imports of the current buffer. command! -nargs=0 OR :call CocAction(runCommand, editor.action.organizeImport) " 添加状态栏表示支持 set statusline^=%{coc#status()}%{get(b:,coc_current_function,)} "启用Prettier进行文件自动格式化command! -nargs=0 Prettier :CocCommand prettier.formatFile let g:prettier#autoformat = 1 " 设置Coc Search nnoremap <leader>? :CocSearch <C-R>=expand("<cword>")<CR><CR>

另外,coc扩展能够经过~/.config/nvim/文件夹中创建coc-settings.json文件来进行配置:

{ "python.defaultInterpreterPath": "/data/data/com.termux/files/usr/bin/python", "python.pythonPath": "/data/data/com.termux/files/usr/bin/python", "python.linting.pylintEnable":true, "python.formatting.provider": "yapf", "python.formatting.yapfArgs": [ "--style", "{SPACES_AROUND_POWER_OPERATOR: True, SPACES_BEFORE_COMMENT: 1}" ], "explorer.width": 38, "explorer.quitOnOpen": true, "explorer.sources": [ { "name": "buffer", "expand": false }, { "name": "file", "expand": true } ], "explorer.file.column.indent.indentLine": true, "explorer.file.showHiddenFiles": true, "explorer.icon.enableNerdfont": true, "explorer.keyMappingMode": "none", "explorer.buffer.showHiddenBuffers": false, "explorer.keyMappings.global": { "o": ["wait", "expanded?", "collapse", "expand"], "<cr>": ["wait", "expandable?", "cd", "open"], "?": "help", "q": "quit" }, "coc.preferences.formatOnSaveFiletypes": ["*"], "prettier.printWidth": 100, "prettier.eslintIntegration": true, "prettier.disableLanguages": [], "prettier.formatterPriority": 1, "prettier.useTabs": true, "prettier.trailingComma": "all", "prettier.singleQuote": false, "prettier.tabWidth": 4 }配置vim-which-key

vim-which-key是一款快捷键映射插件,能够经过简单的设置进行快捷键自定义功能的实现。下面列举了vim-which-key的简单设置:

" 将空格设置为whichkeyleader键 nnoremap <silent> <leader> :WhichKey <Space><CR> "whichkey基本配置let g:which_key_timeout = 100 let g:which_key_display_names = {<CR>: , <TAB>: } let g:which_key_map = {} let g:which_key_sep = letg:which_key_use_floating_win = 0let g:which_key_max_size = 0 " 呼出whichkey时隐匿状态栏 autocmd! FileType which_key autocmd FileType which_key set laststatus=0 noshowmode noruler \| autocmd BufLeave <buffer> set laststatus=2 noshowmode ruler " 自定义whichkey let g:which_key_map[?] = search word letg:which_key_map[/] = [ :call Comment() , comment ] let g:which_key_map[.] = [ :e $MYVIMRC , open init ] let g:which_key_map[;] = [ :Commands , commands ] let g:which_key_map[e] = [:CocCommand explorer --toggle --sources=file+ , explorer ] let g:which_key_map[n] = [ :let @/ = "" , no highlight ] let g:which_key_map[q] = [ <lug>(coc-fix-current) , quickfix ] let g:which_key_map[u] = [ :UndotreeToggle , undo tree] let g:which_key_map[t] = [:FloatermNew --wintype=normal --height=6 , terminal] letg:which_key_map[r] = [ :FloatermNew ranger , ranger] let g:which_key_map[f] = [:FloatermNew fzf , fzf] let g:which_key_map[g] = [:FloatermNew lazygit , git] letg:which_key_map[p] = [:FloatermNew python , python] call which_key#register(<Space>, "g:which_key_map")
在NeoVim中运行Python脚本

能够经过在NeoVim中添加自定义功能,从而在编写时运行当前Python脚本。

"在普通模式下,按r来运行Python脚本 noremap r :call RunPython()<CR> func! RunPython() exec "w" if &filetype == python exec "!time python %" endif endfunc

5、结语

本文重点分享了一下在Android平板上配置Python学习环境的经验,关联配置文件请参见以下链接:https://gitee.com/knightz1224/termux_config,谢谢大众支持!

作者:Python中文社区

原文链接:

https://mp.weixin.qq.com/s/v0_NkTOxmvUuaVvt5EYBVA




上一篇:玩转Termux:教你在手机上安装运行Python!
下一篇:安卓手机上运行Python爬虫
回复

使用道具 举报

1

主题

880

回帖

-3

积分

限制会员

积分
-3
发表于 2024-9-3 22:49:01 | 显示全部楼层
你的见解真是独到,让我受益匪浅。
回复

使用道具 举报

3069

主题

3万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99158935
发表于 2024-10-21 12:14:18 | 显示全部楼层
交流如星光璀璨,点亮思想夜空。
回复

使用道具 举报

3059

主题

2万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99139060
发表于 2024-11-10 01:03:45 | 显示全部楼层
你字句如珍珠,我珍藏这份情。
回复

使用道具 举报

3121

主题

2万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99108633
发表于 2024-11-12 05:18:03 | 显示全部楼层
你的见解真是独到,让我受益匪浅。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-22 17:58 , Processed in 0.129873 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.