Python 开发环境配置
Python 开发环境配置
- Python 开发环境配置
安装 Python
WIndows 下直接到官网下载可执行文件安装即可, 或者下 Anaconda, 从 Anaconda 里装也可以
尽量不要使用微软商店提供的 Python, 目录管理混乱, 导致很多衍生命令执行时走默认路径检测会报错
下载好的 python 安装程序除了手动运行安装外还可以使用命令行来安装, 例如:
python-3.10.6-amd64.exe /quiet InstallAllUsers=1 TargetDir=C:\Python310 PrependPath=1 Include_test=0
InstallAllUsers=1
所有用户可用PrependPath=1
添加环境变量TargetDir=C:\Python310
: 指定安装目录Include_test=0
: 不安装 Python 的测试文件或测试模块。测试文件通常用于开发和测试 Python 本身,而不是用于一般应用程序开发
等待一会儿后新开个 powershell / cmd 窗口验证下:
可以看到已经成功安装在默认目录下且添加了环境变量了
重开 powershell 窗口会重新加载环境变量, 而有时候当前 powershell 窗口可能保存了一些当前需要的临时变量, 重开后就丢失了, 还需要重新操作, 此时也可以通过如下方式, 在不关闭当前 powershell 窗口的前提下重新加载环境变量
如果已经 安装了 Chocolatey, 那么可以直接使用
refreshenv
来刷新当前 powershell 窗口的环境变量
如果没装 Chocolatey 的话也可以在当前 powershell 窗口中执行如下命令来将当前 PowerShell 进程中的 PATH 环境变量设置为与系统环境变量中的 PATH 值相同
[System.Environment]::SetEnvironmentVariable("Path", [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::Machine), [System.EnvironmentVariableTarget]::Process) # 或者使用如下命令也是可以的: $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
[System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::Machine)
: 从系统环境变量中获取名为 "Path" 的环境变量的值。[System.Environment]
是 .NET Framework 中的一个类,用于访问系统环境变量。[System.EnvironmentVariableTarget]::Machine
参数指定了要获取的是计算机级别的环境变量。[System.Environment]::SetEnvironmentVariable("Path", ...)
:用获取到的系统环境变量值来更新当前 PowerShell 进程中的 PATH 环境变量。[System.Environment]::SetEnvironmentVariable
方法用于设置环境变量的值。它接受三个参数:
- 第一个参数是要设置的环境变量的名称,这里是 "Path",表示 PATH 环境变量。
- 第二个参数是要设置的新值,它使用了之前获取的系统环境变量的值,确保当前进程中的 PATH 与系统环境变量中的 PATH 一致。
- 第三个参数是指定了要设置的环境变量的范围,这里是
[System.EnvironmentVariableTarget]::Process
,表示将更改应用于当前进程。
Ubuntu安装Python3 - 知乎 (zhihu.com)
# 更新源
apt update
# 安装 Python3
apt install python3-pip
# 验证
pip -V
python3 -V
修改默认 Python 版本
【Python】Ubuntu修改默认Python版本_remo0x的博客-CSDN博客_ubuntu更改默认python版本
# 删除原来的软链接 rm /usr/bin/python3 # 添加新的软链接 ln -s /root/anaconda3/envs/py310/bin/python /usr/bin/python3
pip 操作
# 将包安装到指定路径(示例)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame --target=C:/Users/233/AppData/Local/Programs/Python/Python38/Lib/site-packages
离线迁移 python 库
python - How to install packages offline? - Stack Overflow --- python - 如何离线安装软件包? - 堆栈溢出
pip download - pip documentation v23.2.1 --- pip 下载 - pip 文档 v23.2.1 (pypa.io)
要在一台断网的机器上安装 python 库的话, 可以现在一台联网的机子上下载所需的 whl 包, 然后拷贝到断网机器中来安装
PS: 两台机器需要有相同的系统以及相同的 python 以及 pip 版本
对于需要安装的库可以现在联网的机器上新建并 CD 到一个空目录, 然后执行如下命令
mkdir pip
cd pip
pip download pip
mkdir wheel
cd wheel
pip download wheel
mkdir [pkg_name]
cd [pkg_name]
pip download [pkg_name]
这会在当前命令行目录下新建一堆包目录, 每个包目录都尤其相关的 whl 依赖, 将这些目录拷贝到离线主机的某个目录中, 并在 powershell 中 cd 到该目录, 运行如下命令即可安装这些包
$packages = Get-ChildItem -Directory
foreach ($package in $packages) {
$package_name = $package.Name
$package_path = $package.FullName
Write-Host "Install package: $package_name"
Write-Host "Package path: $package_path"
pip install --no-index --find-links $package_path $package_name
}
--no-index
: 忽略包索引(只查看--find-links URL
)--find-links
:- 如果是 html 文件的 URL 或路径,则解析指向存档的链接,例如 sdist (.tar.gz) 或wheel (.whl) 文件。
- 如果是本地路径或 file:// URL,则在目录列表中查找档案。
- 不支持指向 VCS 项目 URL 的链接
要逐个包安装的话也是如此:
pip install --no-index --find-links /path/to/download/dir/ [pkg_name]
PS: 上述是逐个梳理依赖的情况, 如果有完整的 requirements 的话就比较方便了, 首先是在联网主机上下载这些依赖
pip download -r .\requirements.txt
将该目录拷贝到离线主机上后执行如下命令
pip install --no-index --find-links [targer_path] -r [requirements.txt_path]
换源操作
winrey/EasyConnectedInChina: 汇总apt,pip,nodejs等各种工具国内镜像源和设置镜像源的方法 (github.com)
# 单独使用
py -3.8 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencc
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencc
# 通过文件安装依赖
py -3.8 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
# 更新 pip
py -3.8 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
- 镜像源地址
- 阿里云
https://mirrors.aliyun.com/pypi/simple/ - 中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple/ - 豆瓣(douban)
http://pypi.douban.com/simple/ - 清华大学
https://pypi.tuna.tsinghua.edu.cn/simple/ - 中国科学技术大学
http://pypi.mirrors.ustc.edu.cn/simple/
- 阿里云
补充:将包装到指定路径:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame --target=C:/Users/233/AppData/Local/Programs/Python/Python38/Lib/site-packages
源地址
官方源
https://pypi.python.org/simple
阿里云
https://mirrors.aliyun.com/pypi/simple/
中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban)
http://pypi.douban.com/simple/
清华大学
https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学
http://pypi.mirrors.ustc.edu.cn/simple/
使用方法
方法一:临时使用
直接在pip后加-i后跟这次使用的源即可,例:
pip install web.py -i https://mirrors.aliyun.com/pypi/simple/
指令中的网址为上方的源地址。
如果出现带有
trusted-host
字样的报错,这是由源不为 https 协议导致的,使用:pip install web.py -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
添加信任主机即可。
方法二:更改默认源
可以使用
# 获取当前默认源
pip config get global.index-url
# 设置默认源
pip config set global.index-url xxxx
# 例如更改为清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
# 改回官方源
pip config set global.index-url https://pypi.python.org/simple
来设置 xxxx
源
查看当前 pip 配置
pip config list
# 备份
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
install.trusted-host='pypi.tuna.tsinghua.edu.cn'
创建或修改配置文件(一般都是创建)
linux与mac的设置的文件在
~/.pip/pip.conf
,vim ~/.pip/pip.conf
windows在
%HOMEPATH%\pip\pip.ini
如果没有创建即可。
更改内容:
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
或
[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com
文件中的网址为上方的源地址。 刚刚下面的内容是http协议源的实例。需要添加信任。 保存退出即可。
方法三:python代码更改安装源
临时使用其他源安装软件包的python脚本如下:
#!/usr/bin/python
import os
package = raw_input("Please input the package which you want to install!\n")
command = "pip install %s -i https://mirrors.aliyun.com/pypi/simple/" % package
# http源的代码实例如下
# command = "pip install %s -i http://pypi.mirrors.ustc.edu.cn/simple --trusted-host pypi.mirrors.ustc.edu.cn" % package
os.system(command)
版本管理工具
- Python 版本管理工具可参阅 版本管理工具/Python版本管理工具
- Python 依赖版本管理工具可参阅 版本管理工具/Python依赖版本管理工具
VSCode
用于编辑与运行 python 程序, 选择 VSCode 主要是其比较轻量, 启动比较快, 用起来比较顺手, 且插件市场庞大, 对于许多语言都有插件支持, 按需下载
比起安装 python 解释器自带的 IDLE 友好许多, 又不会像 Pycharm 一样庞大/启动慢/占资源, 作为平时写点小脚本, 小玩意儿来说完全够用
扩展
汉化插件
Python 相关基础插件
jupyter 插件
使用 Jupyter 的好处在于可以边写笔记边写代码, 如下图所示, 在笔记中可以插入代码块并运行及显示
Markdown 插件
命令行插件 Terminal
用于在 VSCode 中打开 powershell 执行命令
Pylance 无法加载自定义模块
有时 Pylance 可能会识别不了 import 导入的自定义包, 此时需要设置 VScode Pylance 的 python.analysis.extraPaths
属性, 加上自定义包的所在目录
可以在设置中添加:
也可以直接在当前工作目录下新建一个 .vscode/settings.json
进行配置:
{
"python.analysis.extraPaths": [
"/usr/local/python37/lib/python3.7/site-packages",
]
}
然后就可以 Pylance 正常加载相关包了
有时候可能仍旧索引不到相关模块, 那么可以将层级写深点, 不止于
site-packages
, 而是写到模块 py 文件所在目录
Debug
生成环境依赖
生成整个当前环境的依赖
pip freeze > requirements.txt
如果对项目使用了虚拟环境那么这会是一个生成项目依赖的不错的方法
生成当前项目的依赖
pip install pipreqs pipreqs .
Pycharm
Pycharm 换源
实际上这里我用的
conda环境
,相应的也可以在anaconda
中进行换源配置
快捷键
查找替换
Ctrl + R
替换Ctrl + Shift + R
全局替换
无意中触发了TIM快捷键:``Ctrl+Alt+F`(文字识别)
创建文档注释脚本
File -> Settings -> Editor -> File and Code Templates
例:Python Script
例:
# -*- coding: utf-8 -*- # @Time : ${DATE} ${TIME} # @Author : 咸鱼型233 # @File : ${NAME}.py # @Software: ${PRODUCT_NAME}
导入自己的模块报红
- 参考文章
- 结论:
- 本地路径并未被标记“源目录”
- 解决方案:
- File | Settings | Build, Execution, Deployment | Console | Python Console
- 勾选"Add source roots to PYTHONPAT"
- 当前程序根目录右键->“Mark Directory as”->“Sources Root”
- File | Settings | Build, Execution, Deployment | Console | Python Console
PEP8 代码规范检查
JupyterLab
接触 VSCode 的 Jupyter 插件后感觉还是 VSCode + Jupyter 比较好用, 一方面 VSCode 可以安装许多插件作为编码的辅助工具, 另一方面, 单个
.ipynb
文件也比较方便编辑
简介
- JupyterLab,极其强大的下一代notebook![原文链接]
- JupyterLab是Jupyter主打的最新数据科学生产工具,某种意义上,它的出现是为了取代Jupyter Notebook。不过不用担心Jupyter Notebook会消失,JupyterLab包含了Jupyter Notebook所有功能。
- JupyterLab作为一种基于web的集成开发环境,你可以使用它编写notebook、操作终端、编辑markdown文本、打开交互模式、查看csv文件及图片等功能。
- 可以把JupyterLab当作一种究极进化版的Jupyter Notebook。原来的单兵作战,现在是空陆空联合协作。
- Jupyter有如下特点
- 交互模式:Python交互式模式可以直接输入代码,然后执行,并立刻得到结果,因此Python交互模式主要是为了调试Python代码用的
- 内核支持的文档:使你可以在可以在Jupyter内核中运行的任何文本文件(Markdown,Python,R等) 中启用代码
- 模块化界面:可以在同一个窗口同时打开好几个notebook或文件(HTML, TXT, Markdown等等) ,都以标签的形式展示,更像是一个IDE
- 镜像notebook输出:让你可以轻易地创建仪表板
- 同一文档多视图:使你能够实时同步编辑文档并查看结果
- 支持多种数据格式:你可以查看并处理多种数据格式,也能进行丰富的可视化输出或者Markdown形式输出
- 云服务:使用Jupyter Lab连接Google Drive等服务,极大得提升生产力
使用
Anaconda自带,直接在
Home
里Launch
即可启动完之后会发现默认启动路径是电脑
用户根目录
,可以将其改到一个自己觉得合适的目录,操作如下- JupyterLab修改启动默认路径[原文链接]
Anaconda
的Environments
界面用Terminal
打开默认的Python环境(也即默认安装的JupyterLab的依赖环境)- 安装
zmq
pip install -i https://mirrors.aliyun.com/pypi/simple/ zmq
生成配置文件
Jupyter notebook --generate-config
若成功则会显示
Writing default config to: 文件路径
- 打开该
文件路径
指向的文件,利用Ctrl+f
找到c.NotebookApp.notebook
,将其#注释删除,在''
中填入自己认为合适的启动路径
我这里是
C:\Users\233\.jupyter\jupyter_notebook_config.py
- 记得保存文件
- 打开该
再次在
Home
里Launch
启动JupyterLab
确认配置情况
插件
环境准备
打开
cmd prompt
或者Powershell prompt
安装
npm
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple npm
安装
nodejs
conda install -c conda-forge nodejs
- 不要给
yarn
和npm
换淘宝的源- 淘宝源里没有JupyterLab相关的插件,下载插件时会
404
- 淘宝源里没有JupyterLab相关的插件,下载插件时会
安装插件
- 在
JupyterLab
可视化界面中安装
会有安装提示
install
及rebuild
等- 安装好并且
rebuild
之后若左侧栏目未正常显示该插件则先关闭JupyterLab
再重新启动看看有没有正常加载,若仍未正常显示则可以看看下面这条
- 在
反复安装与卸载插件可能会导致插件无法正常加载的错误
错误发现:
Anaconda中运行
cmd prompt
或者Powershell prompt
jupyter labextension list
并回车,会给出
Known labextensions
和Uninstalled core extensions
- 若一个插件同时在两项中出现则其无法正常加载
错误解决方法
- 找到
JupyterLab
插件build
的配置文件- 位置在
<conda_root>/envs/<env_name>/share/jupyter/lab/settings/build_config.json
- 若
JupyterLab
的环境conda
的默认的root
环境,则位置在<conda_root>/share/jupyter/lab/settings/build_config.json
- 位置在
- 找到
插件推荐
@kiteco/jupyterlab-kite
Python
代码提示在
Anaconda
中安装Spyder
的时候一般会引导下载Kite
使用效果
安装
Prompt
安装打开
Anaconda
的Prompt
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jupyter-kite jupyter labextension install @kiteco/jupyterlab-kite
重启
JupyterLab
即可
快捷键
命令模式 (按键 Esc 开启)
Enter
转入编辑模式
Shift-Enter
运行本单元,选中下个单元
Ctrl-Enter
运行本单元
Alt-Enter
运行本单元,在其下插入新单元
Y
单元转入代码状态
M
单元转入markdown状态
R
单元转入raw状态
1
设定 1 级标题
2
设定 2 级标题
3
设定 3 级标题
4
设定 4 级标题
5
设定 5 级标题
6
设定 6 级标题
Up
选中上方单元
K
选中上方单元
Down
选中下方单元
J
选中下方单元
Shift-K
扩大选中上方单元
Shift-J
扩大选中下方单元
A
在上方插入新单元
B
在下方插入新单元
X
剪切选中的单元
C
复制选中的单元
Shift-V
粘贴到上方单元
V
粘贴到下方单元
Z
恢复删除的最后一个单元
D,D
删除选中的单元
Shift-M
合并选中的单元
Ctrl-S
文件存盘
S
文件存盘
L
转换行号
O
转换输出
Shift-O
转换输出滚动
Esc
关闭页面
Q
关闭页面
H
显示快捷键帮助
I,I
中断Notebook内核
0,0
重启Notebook内核
Shift
忽略
Shift-Space
向上滚动
Space
向下滚动
编辑模式 ( Enter 键启动)
Tab
代码补全或缩进
Shift-Tab
提示
Ctrl-]
缩进
Ctrl-[
解除缩进
Ctrl-A
全选
Ctrl-Z
复原
Ctrl-Shift-Z
再做
Ctrl-Y
再做
Ctrl-Home
跳到单元开头
Ctrl-Up
跳到单元开头
Ctrl-End
跳到单元末尾
Ctrl-Down
跳到单元末尾
Ctrl-Left
跳到左边一个字首
Ctrl-Right
跳到右边一个字首
Ctrl-Backspace
删除前面一个字
Ctrl-Delete
删除后面一个字
Esc
进入命令模式
Ctrl-M
进入命令模式
Shift-Enter
运行本单元,选中下一单元
Ctrl-Enter
运行本单元
Alt-Enter
运行本单元,在下面插入一单元
Ctrl-Shift
– 分割单元
Ctrl-Shift-Subtract
分割单元
Ctrl-S
文件存盘
Shift
忽略
Up
光标上移或转入上一单元
Down
光标下移或转入下一单元
ubuntu 16.04 安装 Python 3.8.12
成功了但没完全成功, 不打算再在 ubuntu 16.04 LTS 上整花活了.
PS: 2022-8-5: 成功了, 详见 Ubuntu16.04LTS配置Jupyter服务
PS: VSCode 用
Python Environment Manager
扩展获取最新 Python 环境也是可以的(推荐使用此项, 一键安装免配置, 懒人解法)
20220803 ubuntu16.04LTS Python Environment Managerv1.0.4 拉取最新 Python 装了个 3.9.13 的 conda 环境
ubuntu 16.04 默认自带 Python2.7 和 Python3.5, 可以通过whereis python
查看
这里选择 3.8.12 属于是保守了, 一方面考虑到 1604 有点老, 另一方面有些三方库也并没有跟上时代
配置依赖环境
apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev
下载 Python3.8.12 压缩包并解压
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tar.xz
# 解压
tar -xf Python-3.8.12.tar.xz
# 进入解压目录
cd Python-3.8.12
# 执行安装(这两步时间会比较长)
./configure prefix=/usr/local/python3
make && make install
# 备份原来的 Python 软链接
mv /usr/bin/python /usr/bin/python.bak
# 修改 python3 软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python
# 验证安装
python -V
# 更新 pip
python -m pip install --upgrade pip
# 验证更新
pip -V
Ubuntu 16.04 LTS 配置Jupyter服务
实验环境
: windows 10 使用 root 用户 远程 ubuntu 16.04 LTS 虚拟机
直接使用 VSCode 的 Python Environment Manager
扩展获取最新 conda 环境
激活当前 conda 环境 conda activate xxx
安装 jupyter
套件
pip install jupyter
pip install jupyterlab
pip install notebook
打开 VScode 的 settings.json
,加上
"jupyter.jupyterCommandLineArguments": [
"--allow-root"
],
报错收集
ERROR: Could not install packages due to an Environment
Python Failed to write executable - trying to use .deleteme logic 解决方法 | 烟雨平生 (i007it.com)
如果在 VSCode 中的终端中运行安装库的命令出现类似于如下报错
ERROR: Could not install packages due to an Environment: [WinError 2] 系统找不到指定的文件 : xxxxxxxxx -> xxxxx\\pythonxx\\Scripts\\xxx.exe.deleteme
那么就是权限问题, 请使用管理员方式打开 VSCode