文章目录
1 下载地址
官网:https://www.jetbrains.com/pycharm/download/#section=linux
community (社区)版本可以免费使用
2 启动
windows 系统就不用多介绍了
linux 系统启动如下,进入安装好的 pycharm 文件的 bin 目录下,启动 pycharm.sh
cd pycharm-community-2020.1.3/bin
sh pycharm.sh
3 虚拟环境
同时驾驭多个项目时,可能会出现相同库的不同版本之间的冲突,比如,A 项目需要 pytorch 的版本是 1.1.0,而 B 项目需要的版本是 1.4.0,此时虚拟环境就有用武之地了,可以让每一个项目独享一套环境
本小节介绍下用 pycharm 如何创建、激活、退出、删除虚拟环境!
Ps:安装了 anaconda 的话,也可以用 conda 创建和使用虚拟环境,具体参考 服务器上配置 Tensorflow GPU 版 中的 4.4 Anaconda3安装(可选)
3.1 创建虚拟环境
参考 pycharm创建、激活、删除虚拟环境(新建项目的时候创建虚拟环境)
下面的例子是在打开一个项目的情况下,新建一个虚拟环境
在菜单栏选中 file
-> settings
找到 project
下面的 Project Interpreter
点击右上角的齿轮,再点 add
新建一个 Project Interpreter
,页面如下
location
是虚拟环境的目录,eg:/home/pycharm_project/envs/demo,base interpreter
是虚拟环境的 python 版本
点 OK 就创建好了虚拟环境,会发现 /home/pycharm_project/envs/demo/ 目录下生成了一些配置文件!
还可以用 conda 创建虚拟环境(服务器上配置 Tensorflow GPU 版),然后加入到 pycharm 中,加入过程参考 在pycharm中使用conda虚拟环境
3.2 激活虚拟环境
如何进入虚拟环境呢?可以从如下两种方式进入
第一种,直接在 pycharm 的底端 Terminal
入口进入,正常情况下,控制台页面都是在 Run
处
第二种,从系统的终端进入
打开一个终端,进入虚拟环境目录,source
下子目录 bin
中的 activate
就行
cd /home/pycharm_project/envs/demo/
source bin/activate
3.3 退出虚拟环境
在虚拟环境中输入 deactivate
即可
deactivate
3.4 删除虚拟环境
直接删除掉虚拟环境的目录文件即可 /home/pycharm_project/envs/demo/
4 调试
4.1 pycharm
设置好断点,在程序部分右键,选择 debug
而不是 run
,进入 debug 模式
下面两个图是调试的灵魂
当然 python test1.py
能直接运行的情况下,上述过程很非常开心愉快,但是配合 argparse(介绍可以参考 添加链接描述)传入参数的时候,需要 python test1.py --cfg xxx
才能运行,这个时候直接右键 debug 就不行了!
此时,菜单栏左上角或者右上角有这个方框,点击下三角配置 Debug configurations
基础配置如上图,test1.py 后面的 --cfg xxx
复制在 Parameters 里
特别要注意 working directory,影响代码中的相对路径
也特别要注意 Python interpreter,特别是有很多虚拟环境的时候
点击 run / debug 就可以带参数的进行 ”运行 / 调试“ 了
图片来自 https://blog.csdn.net/sunaxp/article/details/80363705
ps:解决PyCharm调试查看变量时一直显示collecting data并报错Timeout waiting for response且看不到任何内容
4.1.1 调试torch.distributed.launch分布式程序
来自 【PyTorch】PyCharm远程连接服务器,调试torch.distributed.launch分布式程序
不行就只调一张卡,哈哈,node=1
或者
- script path:train.py
- parameter:–cfg config.yaml
- Environment variables:CUDA_VISIBLE_DEVICES=1,2 --nproc_per_node=2 --master_port=1234
4.2 pdb
import pdb
pdb.set_trace() # 需要断点的地方
输入 exit
退出
h(elp),会打印当前版本Pdb可用的命令,如果要查询某个命令,可以输入 h [command],例如:“h l” — 查看list命令
l(ist),可以列出当前将要运行的代码块
b(reak), 设置断点,例如 “b 77″,就是在当前脚本的77行打上断点,还能输入函数名作为参数,断点就打到具体的函数入口,如果只敲b,会显示现有的全部断点
cl(ear),如果后面带有参数,就是清除指定的断点;如果不带参数就是清除所有的断点
disable/enable,禁用/激活断点
n(ext),让程序运行下一行,如果当前语句有一个函数调用,用n是不会进入被调用的函数体中的
s(tep),跟n相似,但是如果当前有一个函数调用,那么s会进入被调用的函数体中
c(ont(inue)),让程序正常运行,直到遇到断点
j(ump),让程序跳转到指定的行数
a(rgs),打印当前函数的参数
p,最有用的命令之一,打印某个变量
!,感叹号后面跟着语句,可以直接改变某个变量
q(uit),退出调试
5 py 文件打包成 exe
借助 pyinstaller
工具
安装通过这个指令 pip install pyinstaller
,离线安装参考 【Linux】learning notes 中 pip install 部分
安装完成后,pyinstaller -F xxx.py
就打包好了(兼容性一般)
记得要在 windows 环境下运行,因为 linux 系统下的可以执行文件(文件名直接可运行)和 window 下不一样
可能会遇到
pyinstaller生成的exe文件在其他电脑打不开的解决方法
pyinstaller -D xxx.py
生成文件夹
python用pyinstaller生成exe时报错 TypeError: an integer is required (got type bytes)
换个版本
附录A 快捷键
返回上一次光标的位置
参考 Pycharm撤销操作和代码跳转后退回操作以及消除波浪线操作快捷键
勾选 Toolbar
View
->Appearance
->Toolbar
在菜单栏会出现左右箭头
可以返回到上次停留的位置
代码折叠
“Ctrl” + “+” 单个模块的展开
“Ctrl” + “-” 单个模块的折叠
“Ctrl” + “Shift” + “+” 所有模块的展开
“Ctrl” + “Shift” + “-” 所有模块的折叠
跳转到定义处
“Ctrl” + “函数名”
附录B
解决调试没有反应
Backend Qt5Agg is interactive backend. Turning interactive mode on
File—Settings—Build,Exrcution,Deployment—Debugger—Python Debugger 里边的 Gevvent compatible 这个选项打勾,然后就可以使用了
Out of Memory 然后一直闪退
windows:bin下的 pycharm64.exe.vmoptions
这两项适当增大
linux: Help --> Edit Custom VM Options
## PyCharm 的启动内存,越大越好。
-Xms128m
## PyCharm 的最大运行内存,也是越大越好。
-Xmx2048m
## PyCharm 保留代码可占用的内存
-XX:ReservedCodeCacheSize=512m