xml地图|网站地图|网站标签 [设为首页] [加入收藏]
学习路线图,回调函数
分类:编程

澳门新葡亰手机版 1

1、python3安装

下载地址:

#安装环境centOS 7

#安装依赖包:

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

#开始安装:

wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
mkdir -p /usr/local/python356
tar zxvf Python-3.6.5.tgz
cd Python-3.6.5
./configure --prefix=/usr/local/python356
make
make install
ln -s /usr/local/python356/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python356/bin/pip3 /usr/local/bin/pip3
pip3 install --upgrade pip  #更新pip
pip3 install ipython  #安装ipython

#一般安装python3.5以上会附加安装了包管理工具setuptools和pip

  在讨论回调函数前我们先看一下一下两种情景。

2、安装setuptools包管理工具

下载地址:setuptools-39.2.0.zip

澳门新葡亰手机版,解压安装:

unzip setuptools-39.2.0.zip
cd setuptools-39.2.0
python33 setup.py build #测试环境
python33 setup.py install #安装

错误解决:

RuntimeError: Compression requires the (missing) zlib module

说明缺少zlib和zlib-devel包,
解决方法:

yum install zlib zlib-devel -y
#然后:进入到安装python的源码包目录下(这步很重要)我的是python33.6版本
cd /home/tools/python33.6
make #重新编译
make install #重新安装一下
#然后:进入要安装的setuptool源码目录下:
python33 setup.py install 
#使用新安装的python33.6安装,不要使用系统自带的python安装。

  1、你在敲代码,中午了,于是你去炒菜,然后敲代码。

3、pip安装使用

(1)下载源码安装

软件包下载地址:pip-10.0.1.tar.gz

wget https://files.pythonhosted.org/packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz
tar xf pip-10.0.1.tar.gz
cd pip-10.0.1
python33 setup.py install #安装
ln -sv /usr/local/python33/bin/pip3 /usr/bin/pip3

#如报以下错误请安装setuptools。
ImportError: No module named 'setuptools'

(2)使用get-pip.py安装

#将get-pip.py下载到本地
#curl -o get-pip.py
#运行命令安装pip,默认get-php.py会安装setuptools和wheel

python33 get-pip.py

#get-pip.py选项
--no-setuptools 不安装setuptools
--no-wheel 不安装wheel

(3)使用linux软件包管理工具安装

#Centos:
sudo yum install python-pip
sudo yum upgrade python-setuptools #升级setuptools
#ubuntu:
sudo apt install python-pip #python2
sudo apt install python3-venv python3-pip #python3

(4)使用pip

#pip命令及选项

Usage:   
  pip3 <command> [options]

Commands:
  install                安装软件包
  download               下载软件包
  uninstall               卸载软件包
  freeze                  到处已安装的软件包
  list                    列出已安装的软件包
  show                    显示软件包的相信信息
  check                   检测软件包的依赖
  config                  管理本地和全局配置
  search                  搜索包
  wheel                   构造wheel文件
  hash                    计算包档案的hash
  completion              命令完成的帮助命令
  help                    显示帮助命令

General Options:
  -h, --help                 显示帮助
  --isolated                 以独立模式运行pip,忽略环境变量和用户配置
  -v, --verbose              详细信息,最多可以使用3次
  -V, --version              显示版本
  -q, --quiet                减少输出
  --log <path>               写入日志文件
  --proxy <proxy>            以[user:passwd @] proxy.server:port的形式指定代理
  --retries <retries>        每个连接应尝试的最大重试次数(默认5次)
  --timeout <sec>            设置套接字超时(默认15秒)
  --exists-action <action>   当路径已经存在时的默认动作: (s)witch, (i)gnore, (w)ipe,(b)ackup, (a)bort).
  --trusted-host <hostname>  将该主机标记为可信,即使它没有有效或任何HTTPS
  --cert <path>              备用CA软件包的路径
  --client-cert <path>       SSL客户端证书路径,包含私钥和PEM格式证书的单个文件
  --cache-dir <dir>          将缓存数据存储在<dir>中
  --no-cache-dir             禁用缓存
  --disable-pip-version-check
                             不要定期检查PyPI以确定是否可以下载新版本的pip

  --no-color                 显示彩色输出

#pip安装、升级、卸载包

#在linux或MacOS上:
pip install -U pip #升级pip

#在windows上:
python -m pip install -U pip

#安装包:
pip install SomePackage 
pip install SomePackage==1.0.4 
pip install 'SomePackage>=1.0.4'

#在指定的文件需求中安装包:
pip freeze 查看已安装的包,可以导出为requirements.txt文件中
pip install -r requirements.txt

#将某个包升级到最新版本:
pip install --upgrade somepackage

#查找发行版和开发版安装包
pip install --pre somepackage

#wheel安装软件包
pip wheel --wheel-dir=/local/wheels -r requirements.txt

#卸载软件包
pip uninstall somepackage

#列出已安装的软件包
pip list

#列出过时的软件包并显示最新版本
pip list --outdated

#显示已安装软件包的相信信息
pip show sphinx

#搜索软件包
pip search "requests"

 #更换国内pip源

pip允许使用标准的ini样式配置文件中设置所有的命令行选项默认值,pip配置文件可以在以下地方,有系统和环境的区分,如virtualenv和站点配置,其中站点配置是所有用户之间共享的:

每个用户:

  • 在Unix上,默认配置文件是:$HOME/.config/pip/pip.conf 它尊重XDG_CONFIG_HOME环境变量。
  • 在macOS上,配置文件 是否存在其他目录。$HOME/Library/ApplicationSupport/pip/pip.conf``$HOME/Library/ApplicationSupport/pip``$HOME/.config/pip/pip.conf
  • 在Windows上,配置文件是%APPDATA%pippip.ini

传统的每个用户配置文件路径也是可用的,它位于:

  • 在Unix和MacOS上,配置文件是: $HOME/.pip/pip.conf
  • 在Windows上,配置文件是: %HOME%pippip.ini

在virtualenv上:

  • 在Unix和MacOS上,文件是 $VIRTUAL_ENV/pip.conf
  • 在Windows上,该文件是: %VIRTUAL_ENV%pip.ini

在整个站点上,也就是全局配置:

  • 在Unix上,该文件可能位于/etc/pip.conf。或者,它可能位于环境变量XDG_CONFIG_DIRS(如果存在)中 设置的任何路径的“pip”子目录中/etc/xdg/pip/pip.conf
  • 在macOS上,该文件是: /Library/ApplicationSupport/pip/pip.conf
  • 在Windows XP上,该文件是: C:Documents andSettingsAll UsersApplication Datapippip.ini
  • 在Windows 7及更高版本中,该文件被隐藏,但可以在此处写入 C:ProgramDatapippip.ini

如果通过pip找到多个配置文件,那么它们按以下顺序查找,前面的配置将被后面查找的配置覆盖使用:

  1. 首先读取站点范围的文件,然后
  2. 读取每个用户文件,最后
  3. 读取virtualenv专用文件。

例如配置国内douan的pip源:

[global]
timeout=60
index-url=http://pypi.douban.com/simple

[install]  #设置信任此站点
trusted-host=http://pypi.douban.com

#其他的源

阿里云 
中国科技大学 
豆瓣 
Python官方 
v2ex 
中国科学院 
清华大学 


 

  2、你在敲代码,中午了,于是你去炒菜,然后打了个电话给美团,点了份外卖,继续敲代码。

  从代码的角度看,1就是我们平时的功能函数的调用,2是调用回调函数。

  可以看出回调函数一个非常重要的好处就是你的程序变成异步了。也就是你不必再调用这个函数的时候一直等待这个时间的到达、事件的发生或中断的发生(万一一直不发生,你的程序会怎么样?),

再此期间你可以做做别的事情,或者四处逛逛。当回调函数被执行时,你的程序重新得到执行的机会,此时你可以继续做必要的事情了。

  回调函数是一个不被设计者直接调用,而是被其他人回过来调用的函数

  回调是一种非常重要的机制,主要用来实现软件的分层设计,使得不同软件模块的开发者的工作进度可以独立出来,不受时空的限制,需要是通过约定好的接口(或标准)相互契合在一起

  如何可以实现回调机制:

1 void func (void (*p)(void *),void * arg);

   例子:

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 void my1(void * arg)
 5 {
 6     char * str = (char *)arg;
 7     printf("%sn",str);
 8 }
 9 
10 void my2(void * arg)
11 {
12     char * str = (char *)arg;
13     printf("%dn",strlen(str));
14 }
15 
16 void func(void (*f)(void *), void *p)
17 {
18     f(p);
19 }
20 
21 int main(int argc, char const *argv[])
22 {
23     
24     char * msg = "hello";
25     func(my1,(void *)msg);
26     func(my2,(void *)msg);
27 
28     return 0;
29 }

本文由澳门新葡亰手机版发布于编程,转载请注明出处:学习路线图,回调函数

上一篇:下如何用NPlot绘制期货股票K线图,你还清楚吗 下一篇:中的闭包,信息采集ajax数据
猜你喜欢
热门排行
精彩图文