大家好,今天小编来为大家解答以下的问题,关于rabbitmq,android这个很多人还不知道,现在让我们一起来看看吧!
本文目录
在linux下安装rabbitmq失败怎么解决zeromq java 怎么使用安装ubuntu下怎么build一个完整的python零基础学Python应该学习哪些入门知识在linux下安装rabbitmq失败怎么解决RabbitMQ是由LShift提供的一个AdvancedMessageQueuingProtocol(AMQP)的开源实现,由以高性能、健壮以及可伸缩性出名的Erlang写成,因此也是继承了这些优点。
AMQP里主要要说两个组件:Exchange和Queue(在AMQP1.0里还会有变动),如下图所示,绿色的X就是Exchange,红色的是Queue,这两者都在Server端,又称作Broker,这部分是RabbitMQ实现的,而蓝色的则是客户端,通常有Producer和Consumer两种类型:
1:mq的安装需要Erlang,所以首先下载Erlang,下载地址:http://www.erlang.org/download.html直接下载源码,编译安装即可。
将下载好的tar包解压编译安装,如下命令:
tar-zxvfotp_src_R16B03-1.tar.gz
cdotp_src_R16B03-1
./configure&&makeinstall
安装过程中可能出现如下错误:
configure:error:
Nocurseslibraryfunctionsfound
configure:error:/bin/sh'/home/niewf/software/erlang_R13B01/erts/configure'
failedforerts
解决方法:
yumlist|grepncurses
yum-yinstallncurses-devel
yuminstallncurses-devel
或者直接下载ncurses包编译安装。
下载地址:http://download.chinaunix.net/download/0008000/7242.shtml
tarzxvfncurses.tar.gz#解压缩并且释放文件包
cdncurses#进入解压缩的目录(注意版本)
./configure#按照你的系统环境制作安装配置文件
make#编译源代码并且编译NCURSES库
suroot#切换到root用户环境
makeinstall#安装编译好的NCURSES库
完成后继续返回上一步操作。
2:安装python,如果系统中python版本低于2.5的话需要升级python到2.6以上,具体可参考:http://gavinshaw.blog.51cto.com/385947/610585
3:安装simplejson,直接下载simplejson源码包编译安装即可,下载地址:https://pypi.python.org/pypi/simplejson/。
下载simplejson源码包后,运行pythonsetup.pyinstall即可完成安装。
4:安装rabbitmq,下载地址:https://www.rabbitmq.com/install-generic-unix.html
下载后放入相应目录解压,进入%RABBITMQ_HOME%/sbin目录下运行:./rabbitmq-serverstart即可启动mq。
如果遇到如下错误,则参考http://leeon.me/a/rabbitmq-start-fail-note解决方案
ERROR:epmderrorforhost"xxx":address(cannotconnecttohost/port)
到此mq已经安装完成。
在%RABBITMQ_HOME%/sbin目录运行./rabbitmqctlstatus可查看当前mq状态。
同时mq也提供了界面查看当前mq状态,但是需要启用该插件功能,运行如下命令:
rabbitmq-pluginsenablerabbitmq_management,然后在浏览器中输入:http://host-name:15672/#/即可访问,页面结果如下:
zeromq java 怎么使用安装先装JDK吧,这样才能装java软件
选择好安装路径。安装到计算机上。下来进行一些设置。首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“java_home”、“path”、“classpath”,其中在没安装过jdk的环境下。path属性是本来存在的。而java_home和classpath是不存在的。
首先点“新建”,然后在变量名写上java_home,顾名其意该变量的含义就是java的安装路径,呵呵,然后在变量值写入刚才安装的路径“C:\jdk1.6”.
其次在系统变量里面找到path,然后点编辑,path变量的含义就是系统在任何路径下都可以识别java命令,则变量值为“%java_home%\bin;%java_home%\jre\bin”,(其中“%java_home%”的意思为刚才设置java_home的值),也可以直接写上“C:\jdk1.6\bin”
最后再点“新建”,然后在变量名上写classpath,该变量的含义是为java加载类(classorlib)路径,只有类在classpath中,java命令才能识别。其值为“.;%java_home%\lib;%java_home%\lib\tools.jar(要加.表示当前路径)”,与相同“%java_home%有相同意思”
以上三个变量设置完毕,则按“确定”直至属性窗口消失,下来是验证看看安装是否成功。先打开“开始”->“运行”,打入“cmd”,进入dos系统界面。然后打“java-version”,如果安装成功。系统会显示javaversionjdk"1.6.0"。
确保安装在C盘文件名为jdk1.6,环境变量直接复制就可以了
还有在c盘下保存下面的代码,文件名为Myjava.java的文件。
publicclassMyjava{
publicstaticvoidmain(Stringargs[]){
System.out.println("试试看,装好了吗?.");
}
}
进入cmd打
c:
cd\
javacMyjava.java
javaMyjava
如果出现试试看,装好了吗?
就说明安装好了,可以用了
ubuntu下怎么build一个完整的python我们需要一个一个编译这些包:
1.common.sh:这个文件里包含一些基础设置,比如选用的GCC,CFLAGS和LDFLAGS如何配置。
[plain]viewplaincopy
exportNDKDIR="/你的NDK路径比如/android-ndk-r10c"
#GCC版本选用,目前有4.6,4.8,4.9,选用时也注意Linux系统的类型,这里x86_64是六十四位
exportCOMPILER="$NDKDIR/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin"
exportCC="$COMPILER/arm-linux-androideabi-gcc"
exportCXX="$COMPILER/arm-linux-androideabi-g++"
exportCPP="$COMPILER/arm-linux-androideabi-cpp"
exportLD="$COMPILER/arm-linux-androideabi-ld"
exportAS="$COMPILER/arm-linux-androideabi-as"
exportAR="$COMPILER/arm-linux-androideabi-ar"
exportSTRIP="$COMPILER/arm-linux-androideabi-strip"
exportOBJCOPY="$COMPILER/arm-linux-androideabi-objcopy"
exportOBJDUMP="$COMPILER/arm-linux-androideabi-objdump"
exportRANLIB="$COMPILER/arm-linux-androideabi-ranlib"
exportNM="$COMPILER/arm-linux-androideabi-nm"
exportSTRINGS="$COMPILER/arm-linux-androideabi-strings"
exportREADELF="$COMPILER/arm-linux-androideabi-readelf"
#选择要编译文件在哪个Android版本上使用,这里案例是在Android4.2上使用,就是android17;2.2对应Android8,5.0对应Android21
exportANDROID="$NDKDIR/platforms/android-17/arch-arm/usr"
#配置系统头文件和库文件位置
exportCFLAGS="-I$ANDROID/include--sysroot=$ANDROID"
exportCXXFLAGS="-I$ANDROID/include--sysroot=$ANDROID"
exportCPPFLAGS="-I$ANDROID/include"
exportLDFLAGS="-L$ANDROID/lib"
2.编译openssl:
[plain]viewplaincopy
tarzxfopenssl-1.0.1j.tar.gz
cdopenssl-1.0.1j
mkdirdist
sourcecommon.sh
MACHINE=armv7SYSTEM=android./config-fPIC--prefix=./dist
#在Makefile里做一些补丁,以防error
sed-i"s|-m64||"Makefile
sed-i"s|-Wall|-Wall--sysroot=$ANDROID|"Makefile
#编译并安装
make
makeinstall
3.编译ncurses,readline,sqlite
仿照openssl的方法,编译另外三个库;其实还有一个zlib需要编译,当然后面不让python支持bz2就可以忽略。
注意readline编译最好选择--with-curses,然后把编译好的ncurses链接上。库类文件编译,尽量都加-fPIC,这是什么,不从汇编说还真说不清楚,还是大家自己去看官方文档吧。
对于localeconv的问题,大家最好改写下那个locale.h,在里面把localeconv的struct里fix放上你要的字符,比如decimal_point是".",这样后面都不会出这类locale的问题了。
这里给出快捷的解决方案就是把localeconv干掉,直接hardcode:
[plain]viewplaincopy
#在ncurses编译之前,需要打的补丁
sed-i"s/#defineisDecimalPoint(c).*/#defineisDecimalPoint(c)((c)=='.')/"form/fty_num.c
sed-i"s/localeconv()/NULL/"form/fty_num.c
[plain]viewplaincopy
#编译ncurses
./configure--prefix=/YourPath--disable-home-terminfo--without-ada
make
makeinstall
[plain]viewplaincopy
#编译readline
./configure--prefix=/YourPath--host=arm-linux--build=x86_64-linux\
--enable-static--enable-shared--with-curses
make
makeinstall
[plain]viewplaincopy
#编译sqlite
./configure--host=arm-linux--build=x86_64-linux
make
makeinstall
4.编译Python:
其实过程整体和openssl没有什么区别,细节上有一些注意事项。
-configure文件是需要手动fix的,打开文件,搜索ac_cv_file__dev_ptmx和ac_cv_file__dev_ptc;删除对这两个变量的自动判断。手动去Android查看/dev文件夹里有没有ptmx和ptc设备,有就设置为yes没就no:
[plain]viewplaincopy
ac_cv_file__dev_ptmx=yes
ac_cv_file__dev_ptc=no
-打开Modules/Setup.dist文件,把需要的python模块前面的#去掉,比如#_socketsocketmodule.ctimemodule.c,要python支持网络socket接口,需要把#去掉;建议尽量多加一些包;实在编译不过的包不要,有些模块需要额外下载开源软件库编译,就不只openssl,ncurses,readline,sqlite了。
这样就可以configure了:
[plain]viewplaincopy
./configure--host=arm-unknown-linux-gnu--build=x86_64-unknown-linux-gnu\
--enable-ipv6
-有一段编译会报错,仔细检查,发现python需要编译一个程序,这个程序跑在host上,但gcc是arm的,hostlinux是x86_64的,所以我们需要复制一份解压好的python代码,然后用本地原有的gcc编译;当然编译时直接./configure&&make就可以了,直到Parser文件夹下出现了pgen这个可执行文件;把它拿出来,复制到另一个python源码的Parser文件夹中,修改Makefile:
[plain]viewplaincopy
sed-i"s|\$(PGEN):.*|\$(PGEN):|"Makefile
sed-i"s|\$(CC)\$(OPT)\$(LDFLAGS)\$(PGENOBJS)\$(LIBS)-o\$(PGEN)|echo\"fakeParser/pgen\"|"Makefile
-解决locale的问题,还有一些常量问题,笨方法hardcode:
[plain]viewplaincopy
sed-i"s|.*localeconv().*||"Objects/stringlib/localeutil.h
sed-i"s|locale_data->grouping|\"\"|"Objects/stringlib/localeutil.h
sed-i"s|locale_data->thousands_sep|\"\"|"Objects/stringlib/localeutil.h
sed-i"s|.*localeconv().*||"Objects/stringlib/formatter.h
sed-i"s|locale_data->grouping|\"\"|"Objects/stringlib/formatter.h
sed-i"s|locale_data->thousands_sep|\"\"|"Objects/stringlib/formatter.h
sed-i"s|locale_data->decimal_point|\".\"|"Objects/stringlib/formatter.h
sed-i"s|.*localeconv().*||"Python/pystrtod.c
sed-i"s|locale_data->decimal_point|\".\"|"Python/pystrtod.c
sed-i"s|I_PUSH|0x5302|"Modules/posixmodule.c
sed-i"s|p->pw_gecos|\"\"|"Modules/pwdmodule.c
-Modules/socketmodule.c:需要去掉一些#if,不然头文件里没有定义,或者直接去$ANDROID的include文件夹把相应.h文件补充完整也可以。
[cpp]viewplaincopy
...
Py_BEGIN_ALLOW_THREADS
#ifdefUSE_GETHOSTBYNAME_LOCK
PyThread_acquire_lock(netdb_lock,1);
#endif
h=gethostbyaddr(ap,al,af);
Py_END_ALLOW_THREADS
ret=gethost_common(h,(structsockaddr*)&addr,sizeof(addr),af);
#ifdefUSE_GETHOSTBYNAME_LOCK
PyThread_release_lock(netdb_lock);
#endif
returnret;
...
make然后make-iinstall,好啦,python编译出来啦!
下面就是放到android上跑了。
需要Android是root的,不root也可以,就是得找个地方放。
需要把python编译好的文件夹打包放到android上,还有sqlite里的那个so文件。
root的话可以在/system/bin里软链接一个python。当然,sqlite.so.3要放在/system/lib里。
其实sqlite是可以不编译的,但是我们的Django需要它,所以还是弄出来吧,ssl也可以不用,但是为了服务器支持https,还是编译下吧。
这样就可以运行python了。
[html]viewplaincopy
#python
>>>1+2
3
然后下载setuptools(https://pypi.python.org/pypi/setuptools/7.0)和pip(https://pypi.python.org/pypi/pip/1.5.6)解压并安装:
[plain]viewplaincopy
gzip-dsetuptools-7.0.tar.gz
tarxfsetuptools-7.0.tar
cdsetuptools-7.0
pythonsetup.pybuild
pythonsetup.pyinstall
gzip-dpip-1.5.6.tar.gz
tarxfpip-1.5.6.tar
cdpip-1.5.6
pythonsetup.pybuild
pythonsetup.pyinstall
把pip软链接到/system/bin。好了,python有了pip,哈哈,随心安装包吧。先来个pipinstallvirtualenv
接下去可以安装djangodjango-sslserver,把django-admin软链接到/system/bin,就可以写网站啦:
[plain]viewplaincopy
django-adminstartprojecttest001
cdtest001
pythonmanage.pymigrate
pythonmanage.pyrunserver0.0.0.0:8000
不安装django也可以直接对一个文件夹提供http服务:
[plain]viewplaincopy
python-mSimpleHTTPServer
有了server,在家庭里就可以搭建平台啦,如果有多个手机,连上wifi,就可以不用接线,完成无线分布式服务器,赶快练习loadbalance吧。
嗯嗯,看看需不需要用手机服务器随时监控家里的活动,然后插上SIM卡还能自动给我发短信,嘿嘿。
后面我们来想象怎么解决pipinstall有时需要编译c文件的问题。其实有团队已经解决了这个问题。
下载DroidforGCCplugin的apk:http://www.liqucn.com/rj/228351.shtml(这个不是官网,最好去googleplay下载)
把apk解压,然后找到gcc的压缩包,里面就有gcc了,把它放到Android上:
[plain]viewplaincopy
#include<stdio.h>
intmain(){
printf("helloworld!\n");
return0;
}
然后gcc-otesttest.c,并运行./test,完美输出helloworld。赶紧软链接到/system/bin里吧。
好了,这样numpy都可以编译安装了。还可以编译下erl,把rabbitmq编译下,弄个分布式也不是问题。最好移植一下lxc,然后把raspberry里的arm版java搬过来就无敌啦。买个USBminiB转RJ45的头就可以插网线了。
总体来说,可以搭建移动服务器了,以后写一些网页版小应用,想用的时候android开个热点,电脑一连,开始enjoy!
零基础学Python应该学习哪些入门知识关于零基础怎么样能快速学好Python的问题,百度提问和解答的都很多,你可以百度下看看。我觉得从个人自学的角度出发,应从以下几个方面来理解:
1为什么选择学python?
据统计零基础或非专业的人士学python的比较多,据HackerRank开发者调查报告2018年5月显示(见图),Python排名第一,成为最受欢迎编程语言。Python以优雅、简洁著称,入行门槛低,可以从事Linux运维、PythonWeb网站工程师、Python自动化测试、数据分析、人工智能等职位,薪资待遇呈上涨趋势。
2入门python需要那些准备?
2.1心态准备。编程是一门技术,也可说是一门手艺。如同书法、绘画、乐器、雕刻等,技艺纯熟的背后肯定付出了长时间的反复练习。不要相信几周速成,也不能急于求成。编程的世界浩瀚无边,所以请保持一颗敬畏的心态去学习,认真对待写下的每一行代码,甚至每一个字符。收拾好自己的心态,向着编程的世界出发。第一步至关重要,关系到初学者从入门到精通还是从入门到放弃。选一条合适的入门道路,并坚持走下去。
2.2配置Python学习环境。选Python2还是Python3?入门时很多人都会纠结。二者只是程序不兼容,思想上并无大差别,语法变动也并不多。选择任何一个入手,都没有大影响。如果你仍然无法抉择,那请选择Python3,毕竟这是未来的趋势。
编辑器该如何选?同样,推荐pycharm社区版,配置简单、功能强大、使用起来省时省心,对初学者友好,并且完全免费!其他编辑器如:notepad++、sublimeText3、vim和Emacs等不推荐了。
操作环境?Python支持现有所有主流操作平台,不管是windows还是mac还是linux,都能很好的运行Python。并且后两者都默认自带Python环境。
2.3选择自学的书籍。我推荐的书的内容由浅入深,建议按照先后顺序阅读学习:
2.3.1《Python简明教程》。这是一本言简意赅的Python入门教程,简单直白,没有废话。就算没有基础,你也可以像读小说一样,花两天时间就可以读完。适合入门快速了解语法。
2.3.2廖雪峰编写的《Python教程》。廖先生的教程涵盖了Python知识的方方面面,内容更加系统,有一定深度,有一定基础之后学习会有更多的收获。
2.4学会安装包。Python中有很多扩展包,想要安装这些包可以采用两种方法:
2.4.1使用pip或easy_install。
1)在网上找到的需要的包,下载下来。eg.rsa-3.1.4.tar.gz;
2)解压缩该文件;
3)命令行工具cd切换到所要安装的包的目录,找到setup.py文件,然后输入pythonsetup.pyinstall
2.4.2不用pip或easy_install,直接打开cmd,敲pipinstallrsa。
3提升阶段需要恒心和耐力。
完成入门阶段的基础学习之后,常会陷入一个瓶颈期,通过看教程很难进一步提高编程水平。这时候,需要的是反复练习,大量的练习。可以从书上的例题、作业题开始写,再写小程序片段,然后写完整的项目。我们收集了一些练习题和网站。可根据自己阶段,选择适合的练习去做。建议最好挑选一两个系列重点完成,而不是浅尝辄止。
3.1多做练习。推荐网站练习:
crossin编程教室实例:相对于编程教室基础练习着重于单一知识点,
编程实例训练对基础知识的融会贯通;
hackerrank:Python部分难度循序渐进,符合学习曲线
实验楼:提升编程水平从做项目开始;
codewar:社区型编程练习网站,内容由易到难;
leetcode:为编程面试准备,对初学者稍难;
牛客网:提供BAT等大厂笔试题目;
codecombat:提供一边游戏一边编程;
projecteuler:纯粹的编程练习网站;
菜鸟教程100例:基于py2的基础练习;
3.2遇到问题多交流。
3.2.1利用好搜索引擎。
3.2.2求助于各大网站。推荐
stackoverflow:这是一个程序员的知识库;
v2ex:国内非常不错的编程社区,不仅仅是包含程序,也包含了程序员的生活;
segmentfault:一家以编程问答为主的网站;
CSDN、知乎、简书等
3.2.3加入相关的QQ、微信群、百度知道。不懂的可以随时请教。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!