Python
多版本安装 pyenv
Linux
多版本安装:https://github.com/pyenv/pyenv-installer
curl https://pyenv.run | bash
如果是WSL2下的Linux,如果宿主机Windows下也 安装了pyenv则会冲突,需通过配置环境变量解决,编辑.bashrc文件:
# 避免路径冲突: 确保WSL2 Ubuntu中的$PATH变量优先使用Linux的pyenv路径
export PATH=$(echo $PATH | sed -e 's/:\/mnt\/c\/Users\/[^:]*\/.pyenv\/pyenv-win\/bin//g')
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
# 默认方案:
# Load pyenv automatically by appending
# the following to
# ~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
# and ~/.bashrc (for interactive shells) :
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
# Restart your shell for the changes to take effect.
# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:
eval "$(pyenv virtualenv-init -)"
卸载python3.10
pip freeze | xargs pip uninstall -y
sudo apt-get remove python3.10 -y
sudo apt-get autoremove -y
Windows
多版本安装:https://github.com/pyenv-win/pyenv-win
安装 pyenv-win 的最简单方法是在 PowerShell 终端中运行以下安装命令:
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
如果您收到任何 UnauthorizedAccess 错误,如下所示,请使用“以管理员身份运行”选项启动 Windows PowerShell 并运行
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
或
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
pyenv使用
查看可安装的版本
pyenv install --list
安装特定版本的python
pyenv install 3.12.4
使用 curl
命令手动下载 Python 源代码,并将其放置在 .pyenv/cache
目录中。这样,pyenv
会直接使用缓存中的文件进行安装,而不会重新下载:
curl -L -o ~/.pyenv/cache/Python-3.12.4.tar.xz https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tar.xz
pyenv install 3.12.4
# Windows类似(可用export HTTPS_PROXY="https://<proxy_address>:<proxy_port>"):
:: [Downloading] :: From https://www.python.org/ftp/python/3.12.4/python-3.12.4-amd64.exe
:: [Downloading] :: To C:\Users\ml\.pyenv\pyenv-win\install_cache\python-3.12.4-amd64.exe
安装依赖 (Linux下安装python时报错:pyenv install 3.12.4 解决办法):
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev \
liblzma-dev git libssl-dev
查看pyenv已经安装的python版本
pyenv versions
切换python版本
pyenv global 3.12.4
查看当前python版本
pyenv version
命令帮助
`commands` 列出所有可用的 pyenv 命令
`duplicate` 创建一个重复的 Python 环境
`local` 设置或显示本地应用程序特定的 Python 版本
`latest` 打印已安装或已知的最新版本的给定前缀
`global` 设置或显示全局 Python 版本
`shell` 设置或显示特定 shell 的 Python 版本
`install` 使用 python-build 安装一个 Python 版本
`uninstall` 卸载特定的 Python 版本
`update` 更新缓存的版本数据库
`rehash` 重新生成 pyenv 的 shims(在安装可执行文件后运行此命令)
`vname` 显示当前的 Python 版本
`version` 显示当前的 Python 版本及其来源
`version-name` 显示当前的 Python 版本
`versions` 列出所有可用于 pyenv 的 Python 版本
`exec` 运行一个可执行文件,首先准备 PATH 以便选择 Python
`which` 显示可执行文件的完整路径
`whence` 列出包含给定可执行文件的所有 Python 版本
pip源加速
用pqi实现快速切换
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pqi
使用手册
pqi ls
pqi use <name>
pqi show
pqi add <name> <url>
pqi remove <name>
pqi (-h | --help)
pqi (-v | --version)
pip国内镜像地址
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
阿里云 https://mirrors.aliyun.com/pypi/simple/
豆瓣 https://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
pip配置文件
Linux的文件在 ~/.config/pip/pip.conf
或 ~/.pip/pip.conf
Windows在 %HOMEPATH%\pip\pip.ini
注意配置文件有优先级顺序!
在你的机器上可能存在以下几个配置文件,它们按照优先级排序:
[优先级1] 站点级别的配置文件,例如/usr/pip.conf
[优先级2] 用户级别的配置文件,例如/root/.config/pip/pip.conf或/root/.pip/pip.conf
[优先级3] 全局级别的配置文件,例如/etc/pip.conf或/etc/xdg/pip/pip.conf
当多个配置文件存在时,PIP会按照优先级合并它们,高优先级的文件会覆盖低优先级的文件中的设置。
[global]
index-url=https://pypi.mirrors.ustc.edu.cn/simple
[install]
trusted-host=pypi.mirrors.ustc.edu.cn
使用多个源(备用):
[global]
timeout=40
index-url = https://pypi.mirrors.ustc.edu.cn/simple
extra-index-url = https://mirrors.aliyun.com/pypi/simple
# 取消pip版本检查,排除每次都报最新的pip
disable-pip-version-check = false
[install]
trusted-host=
pypi.mirrors.ustc.edu.cn/simple
mirrors.aliyun.com
虚拟环境
创建虚拟环境 (环境创建在当前目录.venv下)
python -m venv .venv
激活虚拟环境
bash
source .venv/Scripts/activate
Powershell
.\.venv\Scripts\activate
or
& '.\.venv\Scripts\activate'
cmd
.\.venv\Scripts\activate
退出虚拟环境
deactivate
vscode中python插件关于环境激活的说明
vscode中终端启动时自动激活虚拟环境(配置完需重启vscode):
python -m venv .env
.vscode/settting.json
{
"python.envFile": "${workspaceFolder}/.env",
"python.terminal.activateEnvironment": true
}
PIP包管理
更新pip自身
python -m pip install --upgrade pip
查看需升级的包
pip list --outdated
批量卸载,保留pqi包
pip freeze|grep -v pqi|xargs pip uninstall -y
参数说明
# pip --help
Usage:
pip <command> [options]
Commands:
install 安装软件.
uninstall 卸载软件.
freeze 按着一定格式输出已安装软件列表
list 列出已安装软件.
show 显示软件详细信息.
search 搜索软件,类似yum里的search. -> 新版不支持,可用pip-search替代:pip install pip-search ,用法:pip_search [包名]
wheel Build wheels from your requirements.
zip 不推荐. Zip individual packages.
unzip 不推荐. Unzip individual packages.
bundle 不推荐. Create pybundles.
help 当前帮助.
General Options:
-h, --help 显示帮助.
-v, --verbose 更多的输出,最多可以使用3次
-V, --version 现实版本信息然后退出.
-q, --quiet 最少的输出.
--log-file <path> 覆盖的方式记录verbose错误日志,默认文件:/root/.pip/pip.log
--log <path> 不覆盖记录verbose输出的日志.
--proxy <proxy> Specify a proxy in the form [user:passwd@]proxy.server:port.
--timeout <sec> 连接超时时间 (默认15秒).
--exists-action <action> Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup.
--cert <path> 证书.
Python交互模式REPL
ipython 好
bpython 更好
ptpython 更更好
版本升级
Ubuntu
1.添加新的源
add-apt-repository ppa:deadsnakes/ppa
apt update
注意,如果出现 Error: retrieving gpg key timed out.
可以更换GPG密钥服务器,你可以用以下命令修改你的GPG配置文件,把密钥服务器改为一个可用的地址,比如keys.openpgp.org:
echo "keyserver keys.openpgp.org" >> ~/.gnupg/gpg.conf
2.卸载原来环境(可以不卸载)
python3.8 -m pip uninstall pip
apt purge --auto-remove python3.8
rm -rf /usr/local/lib/python3.8/dist-packages/
3.安装新版本
apt install python3.10 python3.10-venv python-is-python3
4.用以下命令设置python3.10为默认的python3版本
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
sudo update-alternatives --config python3
5.安装pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
其他
No module named ‘tkinter’ 问题解决
正常通过 apt install -y python3-tk 安装即可,但如果有多个版本的python则需安装特定正在使用的版本,如:
apt install -y python3.10-tk
Python输出缓冲区
python输出缓冲区要满 4k 才写入文件,除非禁用缓存或者强制输出或者程序结束
解决的办法:
1.运行时加-u参数,如 `# python -u test.py`
2.在不要缓冲的每一次print后面添加sys.stdout.flush()函数
3.添加环境变量 `PYTHONUNBUFFERED=1`
`
用Python代码段检查当前环境 OpenSSL 支持的版本,通过requests模块
python -c "import requests; print(requests.get('https://www.howsmyssl.com/a/check', verify=False).json()['tls_version'])"
BAT脚本直接启动Anaconda python环境
start "" cmd /k "C:\ProgramData\Anaconda3\Scripts\activate py36"
Anaconda conda
Anaconda下载地址:
https://www.anaconda.com/products/individual#Downloads
历史版本下载地址:https://repo.anaconda.com/
将Anaconda设为默认的python环境
将以下路径加入到path环境变量
C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin
如果你想加入的环境不是你的Anaconda的Base环境而是自己的环境的话,只需要进入anaconda3文件夹下面的envs文件夹中找到你自己所创建的环境,然后添加对应文件夹中的这3个路径就行。
Miniconda下载地址:
https://conda.io/miniconda.html
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
bash Miniconda2-latest-Linux-x86_64.sh
scipy安装(指定清华源):
conda install -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r scipy
修改conda为国内源:
(1)清华源(TUNA)
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/
conda config --set show_channel_urls yes
conda config --set ssl_verify no
(2)中科大源(USTC)
conda config --add channels http://mirrors.ustc.edu.cn/anaconda/pkgs/free/win-64/
conda config --add channels http://mirrors.ustc.edu.cn/anaconda/pkgs/main/win-64/
conda config --set show_channel_urls yes
conda config --set ssl_verify no
(3)阿里云源(ALIYUN) (注意:Windows环境后面路径加上 /win-64/ !!!)
conda config --add channels http://mirrors.aliyun.com/anaconda/pkgs/free/win-64/
conda config --add channels http://mirrors.aliyun.com/anaconda/pkgs/main/win-64/
conda config --set show_channel_urls yes
conda config --set ssl_verify no
也可以直接编辑文件:进入用户目录,比如 ”C:\Users\Administrator“,打开“.condarc“,填入以下文件保存。
ssl_verify: false
show_channel_urls: true
channels:
- http://mirrors.aliyun.com/anaconda/pkgs/free/win-64/
- http://mirrors.aliyun.com/anaconda/pkgs/main/win-64/
命令说明:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 添加通道
conda config --set show_channel_urls yes # 执行安装包时会显示来自哪个源
conda config --remove-key channels # 删除通道
conda config --show channels # 显示通道
conda config --set ssl_verify no # 不验证https
创建新环境
Windows下使用管理员启动cmd
conda create -n py37 python=3.7
激活环境
conda activate py37
取消默认激活环境
conda config --set auto_activate_base false
vscode中取消默认激活环境
设置 - 搜索:python - 找到 activateEnvironment 取消勾选
“python.terminal.activateEnvironment”: false
vscode中 Python 清除工作区解释器设置
ctrl + shift + p
输入:python clear work 后点选
查看当前存在哪些虚拟环境
conda env list 或 conda info -e
使用激活(或切换不同python版本)虚拟环境
Linux: source activate your_env_name
Windows: activate your_env_name
conda pip使用国内源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
对虚拟环境中安装额外的包
conda install -n your_env_name [package]
关闭虚拟环境
Linux: source deactivate
Windows: deactivate
删除虚拟环境
conda remove -n your_env_name --all
conda remove --name your_env_name package_name
直接安装:
conda install numpy
conda install scikit-learn
神经网络依赖包:
conda install numpy
conda install pandas
conda install scipy
查看安装列表:
conda list
# packages in environment at /root/miniconda2:
#
cffi 1.9.1 py27_0
conda 4.3.13 py27_0
conda-env 2.6.0 0
cryptography 1.7.1 py27_0
enum34 1.1.6 py27_0
idna 2.2 py27_0
ipaddress 1.0.18 py27_0
libffi 3.2.1 1
libgfortran 3.0.0 1
mkl 2017.0.1 0
numpy 1.12.0 py27_0
openssl 1.0.2k 0
pip 9.0.1 py27_1
pyasn1 0.1.9 py27_0
pycosat 0.6.1 py27_1
pycparser 2.17 py27_0
pyopenssl 16.2.0 py27_0
python 2.7.13 0
readline 6.2 2
requests 2.12.4 py27_0
ruamel_yaml 0.11.14 py27_1
scikit-learn 0.18.1 <pip>
scipy 0.18.1 np112py27_1
setuptools 27.2.0 py27_0
six 1.10.0 py27_0
sklearn 0.0 <pip>
sqlite 3.13.0 0
tk 8.5.18 0
wheel 0.29.0 py27_0
yaml 0.1.6 0
zlib 1.2.8 3
Jupyter
Jupyter Notebook使用指定的conda环境
conda install nb_conda
重新启动jupyter notebook之后,就可以在kernel中选择自己需要的虚拟环境
Jupyter切换主题
首先在windows下打开anaconda自带的Anaconda Prompt命令行工具,使用最基本简便的pip安装即可
pip install jupyterthemes #安装jupyterthemes
pip install --upgrade jupyterthemes #更新到最新版本的jupyterthemes
jt -l #查看可用的jupytertheme主题
使用-t选项选择主题,使用-f选项设置字体,使用-fs选项设置字体大小,使用-T命令使工具条可见,使用-N使Name和logo可见
jt -t chesterish -f roboto -fs 12 -T -N
Jupyter notebook 离线查看工具
使用nbpreview可以直接查看 ipynb 结尾的文件,不用联网启动 Jupyter notebook了,甚至连 Jupyter 和 IPython 都不用安装就可以能直接查看:Demo
项目地址:https://github.com/jsvine/nbpreview
其他技巧
git bash中使用python
编辑文件:C:\Program Files\Git\etc\profile.d\aliases.sh
将13行:
for name in node ipython php php5 psql python2.7
里的python2.7改成pyhton
这样git bash里输入python就能正常进入环境了
关闭*.pyc文件生成
import 别的 py 文件时,那个 py 文件会被存一份 pyc 加速下次装载。
但是测试时为了不影响目录结构可以关闭:
import sys
sys.dont_write_bytecode = True
py文件打包编译成可执行文件
windows下编译成exe
1.使用py2exe
建立setup.py
from distutils.core import setup
import py2exe
setup(console=['app.py'])
执行
python setup.py py2exe
2.使用pyinstaller
执行
pyinstaller --distpath .\dist_pyinstaller --workpath .\build_pyinstaller -F app.py -n out.exe
Linux下编译成可执行文件
1.pyinstaller支持linux下编译打包,使用方法和windows下一致
pyinstaller --distpath ./dist_pyinstaller --workpath ./build_pyinstaller -F app.py -n out
Python二维码识别库
apt-get install python-qrtools
使用方法:
#!/usr/bin/env python
import qrtools
qr = qrtools.QR()
qr.decode("qr.png")
print qr.data
python有序字典
import collections
d = collections.OrderedDict()
d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'
Python Web开发
Python异步(ASGI)网络框架基准测试: http://klen.github.io/py-frameworks-bench/
用Python建立最简单的web服务器
python2:
python -m SimpleHTTPServer 8080
python3:
python -m http.server 8080
sanic简单高性能异步框架
Sanic 是一个Python 3.7+的Web 服务器和 Web 框架,其编写速度快。
Tornado+Flask 建立Web服务器
app.py
import subprocess
from flask import Flask,request
app = Flask(__name__)
app.debug = True
log = app.logger.debug
app.logger.propagate = 0 # 防止日志向上传播 https://segmentfault.com/q/1010000004077355
@app.route('/')
def hello():
return 'Hello world!'
@app.route('/cmd',methods=['GET'])
def cmd():
postdata = request.args.get('data', '')
log(postdata)
cmd = str(postdata)
val = subprocess.getoutput(cmd)
return val
tornado_server.py
from tornado.httpserver import HTTPServer
from tornado.wsgi import WSGIContainer
from app import app
from tornado.ioloop import IOLoop
if __name__ == '__main__':
s = HTTPServer(WSGIContainer(app))
s.listen(8001) # 监听端口
IOLoop.current().start()
用PHP建立最简单的web服务器
Example #1 启动Web服务器 服务于当前目录
$ php -S localhost:8000
Example #2 启动时指定根目录
$ php -S localhost:8000 -t malu/
Example #3 使用路由(Router)脚本
$ php -S localhost:8000 router.php
错误
导入matplotlib.pyplot模块时报错:
from . import _imaging as core
ImportError: DLL load failed: 找不到指定的模块。
解决办法,把 Pillow、matplotlib更新到最新:
pip uninstall matplotlib
pip uninstall Pillow
pip install Pillow
pip install matplotlib
pip list 显示错误异常:
[ root@0d4c1b027902:~ ]$ pip list
argparse (1.2.1)
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 80, in run
self.run_listing(options)
File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 142, in run_listing
self.output_package_listing(installed_packages)
File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 151, in output_package_listing
if dist_is_editable(dist):
File "/usr/lib/python2.7/dist-packages/pip/util.py", line 366, in dist_is_editable
req = FrozenRequirement.from_dist(dist, [])
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 286, in from_dist
assert len(specs) == 1 and specs[0][0] == '=='
AssertionError
Storing debug log for failure in /root/.pip/pip.log
解决办法:
- to remove ubuntu package: sudo apt-get remove –auto-remove python-pip
- download official pip installer: wget https://bootstrap.pypa.io/get-pip.py
- install pip by running downloaded installer: sudo python get-pip.py
- add sym-link to make it run without full path: sudo ln -s /usr/local/bin/pip /usr/bin/pip
Done!
中文乱码问题3条建议
- 所有 text string 都应该是 unicode 类型,而不是 str,如果你在操作 text,而类型却是 str,那就是在制造 bug。
- 在需要转换的时候,显式转换。从字节解码成文本,用 var.decode(encoding),从文本编码成字节,用 var.encode(encoding)。
- 从外部读取数据时,默认它是字节,然后 decode 成需要的文本;同样的,当需要向外部发送文本时,encode 成字节再发送。
常用Python包
1、pip freeze > requirements.txt 将当前环境中的包的名称及版本导出到文本中
2、然后在另一个环境中 pip install -r requirements.txt 安装
Python3常用包安装:
apt-get install -y libcurl4-openssl-dev libsmbclient-dev python-pip python3-pip
pip3 install pysimplesoap
pip3 install -r requirements.txt
[ root@base:~ ]$ cat requirements.txt
altgraph==0.15
asn1crypto==0.24.0
beautifulsoup4==4.6.0
binwalk==2.1.0
bs4==0.0.1
cached-property==1.4.2
certifi==2018.1.18
chardet==2.3.0
configparser==3.5.0
crcelk==1.1
cryptography==2.1.4
cssselect==1.0.1
cycler==0.10.0
Cython==0.26.1
decorator==4.0.11
docker-pycreds==0.3.0
dockerpty==0.4.1
docopt==0.6.2
future==0.16.0
hashID==3.1.4
html5lib==0.999999999
httplib2==0.9.2
idna==2.6
inflect==0.2.5
jaraco.itertools==2.1
jsonschema==2.6.0
keyring==10.6.0
keyrings.alt==3.0
louis==1.3
lxml==4.1.1
macholib==1.9
matplotlib==2.0.0
more-itertools==4.0.1
numpy==1.12.1
olefile==0.45.1
pefile==2017.11.5
Pillow==4.0.0
pyasn1==0.1.9
pycrypto==2.6.1
pycurl==7.43.0
pygobject==3.26.1
PyInstaller==3.3.1
pymongo==3.1.1
PyOpenGL==3.1.0
pyparsing==2.1.10
pyqtgraph==0.10.0
pyquery==1.3.0
pyserial==3.2.1
PySimpleSOAP==1.16.2
pysmbc==1.0.15.6
python-dateutil==2.5.3
python-debian==0.1.30
python-debianbts==2.6.1
pytz==2016.7
pyxdg==0.25
PyYAML==3.12
requests==2.12.4
scipy==0.18.1
SecretStorage==2.3.1
selenium==3.7.0
six==1.10.0
smoke-zephyr==1.0.2
ssh-import-id==5.7
termineter==0.2.6
texttable==0.9.1
urllib3==1.19.1
webencodings==0.5
websocket-client==0.48.0
xmltodict==0.11.0
mysql-python安装过程
快速安装
apt-get update
apt-get install -y libffi-dev python-dev
apt-get install -y libmysqlclient-dev
apt-get install -y libmysqld-dev
pip install mysql-python
导入模块:
>>> import MySQLdb
在Windows下安装 MySQL-python 1.2.5
安装步骤如下:
1.安装 Microsoft Visual C++ Compiler Package for Python 2.7 下载链接
2.安装 MySQL Connector C 6.0.2 下载链接
3.下载 MySQL-python 1.2.5 源码包 下载链接
4.解压源码包后,修改 site.cfg 文件。
实际上,如果你是在32 位系统上部署,那么通过pip install 安装MySQL-python 1.2.5 只需进行上面的依赖包安装即可。 但在 64 位环境中,就会提示“Cannot open include file: ‘config-win.h’” 的错误。 原因就是 site.cfg 中写的 MySQL Connector C 为32 位版本。
原来的 site.cfg 文件内容如下:
# http://stackoverflow.com/questions/1972259/mysql-python-install-problem-using-virtualenv-windows-pip
# Windows connector libs for MySQL. You need a 32-bit connector for your 32-bit Python build.
connector = C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2
修改为:
connector = C:\Program Files\MySQL\MySQL Connector C 6.0.2
5.运行 python setup.py install 即可安装完成。
不想那么麻烦可以直接安装这个 MySQL-python-1.2.3.win-amd64-py2.7.exe
参考:http://www.codegood.com/archives/129
python_gevent模块安装
通过pip安装,先确保python-dev和libevent-dev已安装:
apt-get install python-dev
apt-get install libevent-dev
pip install gevent
正常情况greenlet也会一同安装:
gevent (1.1.1)
greenlet (0.4.9)
如果遇到安装不上的情况,可以尝试安装旧版本:
pip install gevent==0.13.8
当然也可以下载源码安装:
wget http://pypi.python.org/packages/source/g/gevent/gevent-0.13.8.tar.gz
解压后,要先运行下其中的:
python fetch_libevent.py
然后:
python setup.py build
python setup.py install