原文地址:http://blog.sina.com.cn/s/blog_48c95a190102wczx.html

1、根据pyspider官方推荐的安装方法,使用pip命令直接安装pyspider
# sudo pip install pyspider
Installing collected packages: click, itsdangerous, Werkzeug, Flask, chardet, cssselect, lxml, pyquery, ordereddict, backports.ssl-match-hostname, singledispatch, certifi, backports-abc, tornado, Flask-Login, u-msgpack-python, wsgidav, pyspider
  Running setup.py install for click
  Running setup.py install for itsdangerous
  Running setup.py install for chardet
  Running setup.py install for lxml
    Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-rpK3h8/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-mmscE4-record/install-record.txt --single-version-externally-managed --compile:
    Building lxml version 3.6.0.
    Building without Cython.
    ERROR: /bin/sh: xslt-config: command not found
    ** make sure the development packages of libxml2 and libxslt are installed **
    Using build configuration of libxslt
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.6
    creating build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/cssselect.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/__init__.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/builder.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/sax.py -> build/lib.linux-x86_64-2.6/lxml
    creating build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-2.6/lxml/includes
    creating build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/defs.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/builder.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/clean.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/diff.py -> build/lib.linux-x86_64-2.6/lxml/html
    creating build/lib.linux-x86_64-2.6/lxml/isoschematron
    copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-2.6/lxml/isoschematron
    copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-2.6/lxml/includes
    creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources
    creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/rng
    copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/rng
    creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl
    copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl
    copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl
    creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    running build_ext
    building 'lxml.etree' extension
    creating build/temp.linux-x86_64-2.6
    creating build/temp.linux-x86_64-2.6/src
    creating build/temp.linux-x86_64-2.6/src/lxml
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Isrc/lxml/includes -I/usr/include/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.6/src/lxml/lxml.etree.o -w
    src/lxml/lxml.etree.c:82:20: error: Python.h: No such file or directory
    src/lxml/lxml.etree.c:84:6: error: #error Python headers needed to compile C extensions, please install development version of Python.
    Compile failed: command 'gcc' failed with exit status 1
    creating tmp
    cc -I/usr/include/libxml2 -c /tmp/xmlXPathInitlSjq1o.c -o tmp/xmlXPathInitlSjq1o.o
    /tmp/xmlXPathInitlSjq1o.c:1:26: error: libxml/xpath.h: No such file or directory
    *********************************************************************************
    Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
    *********************************************************************************
    error: command 'gcc' failed with exit status 1
 
根据错误提示可知,导致安装出错的原因是libxml2和libxslt这两个库没有安装,而且找不到xslt-config这个可执行程序,解决方法如下:
# sudo yum install libxml2  
# sudo yum install libxslt       
# sudo yum install libxslt-devel  
 
2、继续使用pip命令安装pyspider
# sudo pip install pyspider
...
Running setup.py install for lxml
    Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-EQanqI/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-WzvLSh-record/install-record.txt --single-version-externally-managed --compile:
    Building lxml version 3.6.0.
    Building without Cython.
    Using build configuration of libxslt 1.1.26
    Building against libxml2/libxslt in the following directory: /usr/lib64
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.6
    creating build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/cssselect.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/__init__.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/builder.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/sax.py -> build/lib.linux-x86_64-2.6/lxml
    creating build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-2.6/lxml/includes
    creating build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/defs.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/builder.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/clean.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-2.6/lxml/html
    copying src/lxml/html/diff.py -> build/lib.linux-x86_64-2.6/lxml/html
    creating build/lib.linux-x86_64-2.6/lxml/isoschematron
    copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-2.6/lxml/isoschematron
    copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-2.6/lxml
    copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-2.6/lxml/includes
    copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-2.6/lxml/includes
    creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources
    creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/rng
    copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/rng
    creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl
    copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl
    copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl
    creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    running build_ext
    building 'lxml.etree' extension
    creating build/temp.linux-x86_64-2.6
    creating build/temp.linux-x86_64-2.6/src
    creating build/temp.linux-x86_64-2.6/src/lxml
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/usr/include/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.6/src/lxml/lxml.etree.o -w
    src/lxml/lxml.etree.c:82:20: error: Python.h: No such file or directory
    src/lxml/lxml.etree.c:84:6: error: #error Python headers needed to compile C extensions, please install development version of Python.
    Compile failed: command 'gcc' failed with exit status 1
    creating tmp
    cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInitd0Umi6.c -o tmp/xmlXPathInitd0Umi6.o
    cc tmp/xmlXPathInitd0Umi6.o -L/usr/lib64 -lxml2 -o a.out
    error: command 'gcc' failed with exit status 1
 
根据错误提示可知,导致安装出错的原因是Python.h: No such file or directory,即找不到Python.h这个头文件,解决方法如下:
# sudo yum install python-devel
至此,再次执行sudo pip install pyspider就可以完成pyspider的安装。
 
3、启动pyspider,验证安装是否成功
# pyspider
Traceback (most recent call last):
  File "/usr/bin/pyspider", line 5, in
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2655, in
    working_set.require(__requires__)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 648, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 546, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pyquery
 
根据错误提示可知,在执行pyspider时找不到pyquery,但实际上在安装pyspider时pyquery已经安装了,通过pip freeze也可以看到,导致该问题的原因不详,解决方法如下:
# sudo pip install -U setuptools
 
4、安装pyspider所需使用的驱动
通过单纯的pyspider命令来启动pyspider时,默认会在当前目录下创建data目录,其中存放了sqlite数据库文件,该情况下无需安装任务数据库connector。如果要以分布式集群的方式来运行pyspider的话,就需要使用mysql、mongodb或postgresql作为后台数据库,使用rabbitmq、redis、beanstalk或kombu作为消息队列。官方推荐的安装方式是采用pip install pyspider[all]命令来安装所有驱动,但该方法一方面会安装一些无用的驱动,另一方面极有可能导致安装失败。因此如果已经确定后台数据库软件和消息队列软件的话,那么选择安装需要的驱动即可。例如采用mongodb作为后台数据库,采用redis作为消息队列的话,就可以通过如下命令安装:
# sudo pip install pymongo
# sudo pip install redis  

 

【转】CentOS 6.5安装pyspider过程记录的更多相关文章

  1. CentOS 6.5 安装mysql 过程记录

    下载的时候一定选对应的版本, el6 还是el7 或者其他版本,不然会出现意向不到的惊喜 比如:我刚开始的时候下载的 el7 版本的 mysql , 然后安装的时候 就会出现: libc.so.(GL ...

  2. xp硬盘安装Fedora14 过程记录及心得体会(fedora14 live版本680M 和fedora14 DVD版本3.2G的选择)

    这次电脑奔溃了,奇怪的是直接ghost覆盖c盘竟然不中.之前电脑上硬盘安装的fedora14操作系统,也是双系统.不知道是不是这个问题,记得同学说过,在硬盘装fedora之后,要手动修改c盘隐藏的那个 ...

  3. centos源码编译安装nginx过程记录

    前言:Centos系统编译安装LNMP环境是每来一台新服务器或换电脑都需要做的事情.这里仅做一个记录.给初学者一个参考! 一.安装前的环境 这里用的是centos 7系统. 我们默认把下载的软件放在 ...

  4. redhat6.0 安装ORACLE11GR2过程记录

    vawaretools安装 我的是8.0vm 1,vm=>install vmtools 2,会在redhat里出现一个虚拟光驱图标. 3,复制里面的文件到root目录下. 4,解压缩文件 ta ...

  5. vim安装 YCM 过程记录

    YCM(YouComplateMe) 属于Vim中大神级的插件,提供了类似于巨硬爸爸的VS中的代码补全,但是其安装方式也是比较复杂,因此特意写下一篇记录,记录下我自己如何安装这一插件的过程: 检查自己 ...

  6. 安装 MySQL 过程记录

    最近安装 MySQL 时 遇到了许多问题,记录一下安装过程以及遇到的问题. 第一步:在官网上下载适合自己版本的 MySQL,我选择的是 Windows 64 位免安装版的:    官网地址:https ...

  7. 安装scikit-learn过程记录

    环境:Windows 10 X64企业版. 安装python2.7: 官网下载python-2.7.12.amd64.msi安装文件,过程不赘述.安装完成后在PATH环境变量中加入%PYTHON_HO ...

  8. CentOS 6.5 安装MySQL过程

    使用软件的版本 CentOS 6.5 mysql-5.5.22.tar.gz cmake-2.8.6.tar.gz 准备工作 解压安装mysql之前把关于mysql软件包卸载,以免程序冲突,端口冲突. ...

  9. Linux系统中安装Oracle过程记录

    第一章 安装数据库软件 1.1 修改密码及创建目录和权限 创建oracle用户和组 创建相关目录并赋权 1.2 设置oracle用户环境变量 ORACLE_BASE:产品基目录 ORACLE_HOME ...

随机推荐

  1. LeetCode Two Sum III - Data structure design

    原题链接在这里:https://leetcode.com/problems/two-sum-iii-data-structure-design/ 题目: Design and implement a ...

  2. 千万级SQL Server数据库表分区的实现

    千万级SQL Server数据库表分区的实现 2010-09-10 13:37 佚名 数据库 字号:T | T 一般在千万级的数据压力下,分区是一种比较好的提升性能方法.本文将介绍SQL Server ...

  3. 如何让VMware低版本运行VMware高版本创建的虚拟机

    如何让VMware低版本运行VMware高版本创建的虚拟机 问题描述: 本机安装的VMware Workstation是10版本,之前VMware Workstation 11版本创建的虚拟机,在运行 ...

  4. Python基础(深、浅拷贝)

    深.浅拷贝 基础:对象,引用,可变与可变 对于不可变的对象,如字符串.元组.数字深浅拷贝没有什么意义. 1.浅拷贝 浅拷贝只拷贝第一层对象(拷贝的实际是一个框子,拷贝过去的框子是不会变的,但是原先的框 ...

  5. 20145320《Java程序设计》第四次实验报告

    20145320<Java程序设计>第四次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.26 15: ...

  6. NFC基础

    本文档描述了在Android执行的基本的NFC技术,它说明了如何发送和接收NDEF消息的形式的NFC数据,并介绍Android框架中支持这些功能的API,对于更高级的主题,包括讨论非NDEF数据相关的 ...

  7. WCF ABC

    参考文献 http://blog.sina.com.cn/s/blog_7358f8b201012pnt.html http://www.cnblogs.com/CodingPerfectWorld/ ...

  8. Excel应该这么玩——2、命名列:消除地址引用

    命名列:通过名称引用列,让公式更容易理解. 下面继续举上次的栗子. 1.历史遗留问题 之前虽然把数字编成了命名单元格,但其中还是有单元格地址B2.C2之类,要理解公式需要找到对应的列标题. 特别是像下 ...

  9. jquery easyui DataGrid 数据表格 属性

    用法 1.  <table id="tt"></table> 1.  $('#tt').datagrid({ 2.      url:'datagrid_d ...

  10. css3属性之 box-sizing

    w3c plus上有详细介绍及原理http://www.w3cplus.com/content/css3-box-sizing,这里摘录其中重要知识点部分. 本文重点考虑移动开发,所以默认移动端的浏览 ...