Python 创建虚拟环境
方法一venv:
1 |
python3 -m venv myenv |
方法二 pipenv:
1 2 3 4 5 |
pip install pipenv pipenv install # 创建虚拟环境 pipenv shell # 进入虚拟环境 pipenv install xxx # 安装软件包 deactivate # 退出虚拟环境 |
方法三conda(推荐 miniconda):
1 2 3 |
conda create -n myenv python=3.6 source activate myenv # Windows 上activate myenv source deactivate |
方法四 virtualenv:
同时可配合 Virtualenv Wrapper来让使用更为方便
1 2 3 4 |
pip3 install virtualenv virtualenv myenv source myenv/bin/activate deactivate |
Gitignore 文件
通过 PyCharm 可快速创建.gitignore文件,只需在 Preferences > Plugins 中搜索 ignore 插件并进行安装,然后右击新建 New > .ignore file > .gitingore file,在弹窗中搜索 Python 和 JetBrains 选择生成。
源码解读:
https://read.douban.com/reader/ebook/1499455/(Python源码剖析-深度探索动态语言核心技术原书)
https://flaggo.github.io/python3-source-code-analysis/(网友基于原书进行的Python 3解读)
Jupyter快捷键
- Tab:代码提示(输入部分代码后按Tab键)。
- Shift+Enter:执行本行并定位到新增的行。
- Shift+Tab(1~3次):查看函数方法说明(光标在函数上按住Shift再按Tab键一到三次)。
- D D:双击D键删除本行。
- A / B:向上/向下增加一行。
- M / R:Markdown / 代码模式。
Linux下安装IPython
CentOS下运行yum list | grep ipython查看安装包
python-ipython.noarch 0.13.2-7.el6 @epel python-ipython-console.noarch 0.13.2-7.el6 @epel python-ipython-gui.noarch 0.13.2-7.el6 @epel python-ipython-notebook.noarch 0.13.2-7.el6 @epel python-ipython-doc.noarch 0.13.2-7.el6 epel python-ipython-tests.noarch 0.13.2-7.el6 epel
运行yum -y install python-ipython.noarch完成安装,进入IPython命令行输入ipython:
Tcl/Tk不稳定报错
Mac上在Terminal中输入idle即可进入idle编辑器,但会发现如下警告:
WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
Visit http://www.python.org/download/mac/tcltk/ for current information.
打开上面这个网页按照指引进入http://www.activestate.com/activetcl/downloads下载最新版的TCL(8.5.*)进行安装即可
实现Tab auto complete
可以Python的库目录下(如/usr/lib/python2.7/site-packages)创建tab.py,然后在命令行中import tab.py再使用tab即可
注:在Python命令行中直接使用dir(变量)命令也可以查看适用的方法
import readline import rlcompleter if 'libedit' in readline.__doc__: readline.parse_and_bind("bind ^I rl_complete") else: readline.parse_and_bind("tab: complete")
Lambda函数
1 2 3 4 5 6 7 8 9 |
# filter numbers = [10, 25, 54, 86, 89, 11, 33, 22] new_numbers = list(filter(lambda x: (x%2 == 0) , numbers)) print(new_numbers) # map my_list = [1, 5, 4, 6, 8, 11, 3, 12] new_list = list(map(lambda x: x * 2 , my_list)) print(new_list) |
Python3 安装
1 2 3 4 5 6 7 |
mkdir -p /usr/local/python3 && cd /usr/local/python3/ wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz tar -vzxf Python-3.6.6.tgz && cd Python-3.6.6 ./configure --prefix=/usr/local/python3/Python-3.6.6 make && make install ln -s /usr/local/python3/Python-3.6.6/bin/python3.6 /usr/bin/python3 ln -s /usr/local/python3/Python-3.6.6/bin/pip3 /usr/bin/pip3 |
VSCode 配置 Python 虚拟环境
- 打开VS Code,Code > Preferences > Settings进入用户设置,搜索python.venvPath(默认为空),将其设置为你自己虚拟环境所在的目录:如~/.virtualenvs
- 菜单栏View > Command Palette进入命令面板,输入 Python: Select Interpreter,选择相应的虚拟环境目录
- ModuleNotFoundError: No module named:按下快捷键ctrl+shift+p,选择Preferences: Open User Settings(JSON),在文件中加入
1"terminal.integrated.env.windows": { "PYTHONPATH": "${workspaceFolder}/" }
根据平台使用windows或linux
PyCharm及 JetBrains 其它产品破解:https://macstore.info/a/Jetbrainscrack.html
网络
常见问题
1、subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.
查看lsb_release.py所在目录
1 |
sudo find / -name 'lsb_release.py' |
将对应的lsb_release.py文件拷贝到subprocess.py目录下,如:
1 |
sudo cp /usr/lib/python3/dist-packages/lsb_release.py /usr/local/python3/Python-3.6.6/lib/python3.6/ |
2、Was unable to import superset Error: No module named ‘_sqlite3’
1 2 3 |
sudo apt-get install libsqlite3-dev ./configure make && make install |
3、ModuleNotFoundError: No module named ‘__main__.XX’; ‘__main__’ is not a package
入口文件中不能使用相对路径,同级目录的可使用如下方式进行解决:
1 2 |
import os, sys sys.path.append(os.path.dirname(__file__) + os.sep + '../') |
ValueError: attempted relative import beyond top-level package 报错也可使用类似方式进行解决
4、使用 redis时,ttl 返回为 None,将连接时的 Redis 修改为 StrictRedis
1 |
redis.StrictRedis(connection_pool=pool) |
5、快速搭建 Web 服务器和离线查看文档
1 2 3 4 |
python -m SimpleHTTPServer 8888 # python2 python3 -m http.server 8888 # python3 python3 -m pydoc -p 5200 python -m json.tool xxx.json # 查看 JSON 文件 |
6、AttributeError: module ‘asyncio’ has no attribute ‘run’
Python 3.7及以上使用
1 |
asyncio.get_event_loop().run_until_complete(main()) |