通常Python入门,很多情况都是直接在IDLE上敲代码,但是这个IDLE又没有补全,又没有赏心悦目的界面,这就很郁闷了….
于是,对于编辑器,这就好好选择了。
安装Anaconda
这是Python的一个包管理器,通过它,你可以十分轻松地对Python的包进行管理(安装与卸载)。(这包就是Python的生命呀,还不好好地弄好)
因为Python有2和3,相互又有点不兼容,所以Anaconda也有对应Python2和Python3的版本。地址在这里。
在装完Anaconda时,同时它会自动帮你装上Python,所以之前如果有单独装过Python的,就可以卸掉了。
Anaconda环境变量
在此电脑->右键选择属性->高级系统设置->环境变量->系统变量->path
添加anaconda的安装路径。即可在任意终端中打开python
。
出现“conda 不是内部命令”的情况,则需要将anaconda安装目录下的Scripts也加入到系统变量中,步骤同上,就可以解决
安装PyCharm
PyCharm是一个十分优秀的Python编辑器,虽然它的包比较大,运行的时候较为占用资源。但是它在编码以及调试的时候能提高不少效率。因为PyCharm只是编辑器,所以也就没有版本之分了。
http://www.jetbrains.com/pycharm/download/#section=windows
Community版免费,已经足够使用了(良心企业)。
一开始使用PyCharm可能挺难上手,但是用惯了以后则会慢慢享受起来了~
使用Anaconda安装Python的包(模块)
在windows的搜索中(开始键+s,还有各种搜索方法),可以找到这个
点开以后,会有如下界面(有些高级点的Anaconda Navigator 有交互界面,,,那个另说啦)
以最常见的numpy包为例,只要输入
1 | conda install numpy |
或者
1 | pip install numpy |
就能安装(推荐使用pip安装,还有忘了pip要不要事先安装了- -)
因为很多时候安装的包从国外下载,就会特别慢,所以换成国内的镜像(国外资源在国内的复制品的感觉吧),速度就嗖嗖嗖的
于是在命令改为
1 | pip install numpy -i https://pypi.douban.com/simple |
至此,如无意外,就能好好装包了,import ~~~
pip 换源
但是每次都加参数,很是不方便,可以修改配置文件使得永久生效。
windows:
在资源管理器的地址栏输入%appdata%
后回车,新建一个pip文件夹,新建文件pip.ini,内容如下:
1 | [global] |
Linux:
修改 ~/.pip/pip.conf
(没有就创建一个), 内容如下:
1 | [global] |
使用PyCharm
建立工程
Location:工程放到哪里
Interpreter:解析器,选择Anaconda的,不然刚装的包没有用
新建Python文件
对左方文件夹右键,如图 然后键入文件名就好
敲代码
这不用说了吧?
运行代码
敲完代码以后,直接在代码框上右键找到run
或者右上角有个三角形的进行运行,不过甚是麻烦那个,就不说了。
运行结果在下面的框框中。
别的东西
下方栏中的几个工具:
跟原生IDLE差不多,具有交互功能(另外有个IPython的,具有补全功能的交互式IDLE)
然后这个
终端,,没什么好解释的,就是系统的那个黑色框框
如果程序需要外部运行时传入参数,用这个可以帮到你。
然后敲代码的时候,多按照PyCharm提示,调整自己的代码风格,我觉得是挺好的。
启用Gevent compatible debugging
最新版本的Pycharm中,若调试的过程中出现了unable to display frame variables
,则在Settings->Python Debugger->Gevent compatible
前面打上勾。
Anaconda Navigator
具有交互式界面的Anaconda包管理器
在Home界面,
这个可以打开ipynb文件,一种可以改动的交互式笔记本,常用作教学使用(好吧,我编不下去了,自己百度吧,,,)
IPython,之前提过,Python原生交互式Shell的增强版,在平时试语法试函数等等常用,带自动补全。
跟Matlab特别想像的Python编辑器,可以查看变量之类的。(爬虫挺适合的吧)
在Environments可以浏览一堆Python包,选择安装。
其余就不细说了~~
Pyc文件反编译
最近想借鉴一下师兄的代码,但是苦于师兄只给了pyc文件,但是没有给py文件。在网上找到了可以通过pyc文件反编译出py文件的方法。自己试了试,感觉特别管用,所以在这里记录一下。
首先,安装uncompyle
1 | pip install uncompyle |
然后,我使用pip在mac os或者Ubuntu上安装好后的可执行文件名叫uncompyle6,很奇葩有没有
1 | uncompyle6 --help 查看帮助 |
反编译后的效果可以说很理想,如果你的代码格式符合PEP8规范的要求,那就基本和源来的文件一样,不过各种注释就没有了(不能要求太高是不是)。即使不符合PEP8规范,反编译的结果也很好。
解决pip报错
有的时候pip环境会严重错乱,出现了错误AttributeError: '_NamespacePath' object has no attribute 'sort'
或者 ModuleNotFoundError: No module named 'pip._internal'
,网上有很多种解决该错误的方法,但是下面这种方法最有效。
1 | curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py |
硬盘空间不足
当硬盘空间不足时,使用pip安装包时,会出现ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device
的错误,解决方法为:
1 | TMPDIR=/data2/zhaodali/tmp pip install torch==1.1.0 torchvision==0.3.0 --cache-dir=/data2/zhaodali/tmp --build /data2/zhaodali/tmp |
终端调试
使用ipdb
调试,例如要调试的Python文件名为test.py
,则运行下面语句即可开始调试。
1 | python -m ipdb test.py |
具体调试的常用命令可以查看相关手册,这里不再列出来。
需要注意的是,当文件中有中文时,调试时可能出现UnicodeEncodeError: 'ascii' codec can't encode characters in position 343-351: ordinal not in range(128)
这样的错误,解决方法为,在~/.bash_profile
文件中,添加一行:
1 | export LANG="en_US.UTF-8" |
保存退出后重新打开命令行控制台。
查看包依赖
1 | (base) [zhaodali@zdaopt ~]$ pip show tensorflow-gpu |
setup.py设置环境变量
当使用python setup.py install
安装https://github.com/NVIDIA/retinanet-examples,提示找不到tensorrt库,在`setup.py`文件中的`ext_modules`中添加这样的一句话:`extra_link_args=['-L/data2/zhaodali/software/TensorRT-6.0.1.8/lib'],`即可。
IPdb调试
使用ipdb调试,若想要输入多行语句,则直接输入interact
即可。
参考
Unable to display frame variables (PyCharm remote debugger)
pyc文件反编译到Python源码
ModuleNotFoundError: No module named ‘pip._internal’
【转】Python3中遇到UnicodeEncodeError: ‘ascii’ codec can’t encode characters in ordinal not in range(128)
[Errno 28] No space left on device #5816
解决pip安装超时的问题
如何在Python自己的调试器(PDB)中执行多行语句
Windows下更换pip源为清华源