Apache+Tomcat+JK配置详解

Apache+Tomcat+JK配置详解
Apache+Tomcat+JK配置详解

Linux搭建Apache+Tomcat+JK环

使用手册

(仅供内部使用)

V1.0

1 引言

1.1 编写目的

本说明手册为了阐述Linux搭建Apache+Tomcat环境,并详细介绍Tomcat的集群和负载均衡配置而编写。届时介绍域名的绑定,Centos 6.5中随系统自动启动个软件的配置方法。

1.2 项目背景

在Linux(Centos 6.5)上整合Apache和Tomcat ,并实现Tomcat的集群和负载均衡。这里是在同一台服务器上弄的集群和负载均衡,以两个Tomcat为例,如果是两个以上的Tomcat,配置的原理是一样的,只需要将各个Tomcat的端口号设置成不一样即可。

1.3 定义

1.3.1集群(Cluster)

是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。

1.3.2负载均衡(Load Balance)

即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

1.4 参考资料

1.4.1Tomcat集群与负载均衡区别以及特性

在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。所以,这时候我们就需要用到集群这一门技术了。

在进入集群系统架构探讨之前,先定义一些专门术语:

1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。

2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web 服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。

3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。集群系统 (Cluster)主要解决下面几个问题:高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

目前比较常用的负载均衡技术主要有:

1. 基于DNS的负载均衡

通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web 服务器,从而达到负载均衡的目的。

2. 反向代理负载均衡(如Apache+JK2+Tomcat这种组合)

使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

3. 基于NAT(Network Address Translation)的负载均衡技术(如Linux Virtual Server,简称LVS)

网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。

介绍完上面的集群技术之后,下面就基于Tomcat的集群架构方案进行说明:

上面是采用了Apache httpd作为web服务器的,即作为Tomcat的前端处理器,根据具体情况而定,有些情况下是不需要Apache httpd作为 web 服务器的,如系统展现没有静态页

面那就不需要Apache httpd,那时可以直接使用Tomcat作为web 服务器来使用。使用Apache httpd主要是它在处理静态页面方面的能力比Tomcat强多了。

1、用户的网页浏览器做完本地 DNS和企业授权的DNS之的请求/响应后,这时候企业授权的DNS(即21cn BOSS DNS)会给用户本地的DNS服务器提供一个NAT请求分配器(即网关)IP。

2、 NAT分配器,它会根据特定的分配算法,来决定要将连接交给哪一台内部 Apache httpd来处理请求。大多数的NAT请求分配器提供了容错能力:根据侦测各种WEB服务器的失效状况,停止将请求分配给已经宕掉的服务器。并且有些分配器还可以监测到WEB服务器机器的负载情况,并将请求分配给负载最轻的服务器等等。Linux Virtual Server是一个基于Linux操作系统上执行的VS-NAT开源软件套件,而且它有丰富的功能和良好的说明文件。商业硬件解决方案 Foundry Networks的ServerIron是目前业界公认最佳的请求分配器之一。

3、 Apache httpd + Mod_JK2在这里是作为负载均衡器,那为什么要做集群呢?如果集群系统要具备容错能力,以便在仸何单一的硬件或软件组件失效时还能100%可用,那么集群系统必须没有单点故障之忧。所以,不能只架设一台有mod_jk2的Apache httpd,因为如果 httpd或mod_jk2失效了,将不会再有请求被会送交到仸何一个Tomcat 实例。这种情况下,Apache httpd就是瓶劲,特别在访问量大的网站。

4、 Mod_JK2负载均衡与故障复原,决定把Apache httpd当成web服务器,而且使用

mod_jk2将请求传送给Tomcat,则可以使用mod_jk2的负载均衡与容错功能。在集群系统中,带有 mod_jk2的Apache httpd可以做的事情包括:

A、将请求分配至一或多个Tomcat实例上你可以在mod_jk2的workers.properties文件中,设定许多Tomcat实例,并赋于每个实例一个lb_factor值,以作为请求分配的加权因子。

B、侦测Tomcat实例是否失败当Tomcat实例的连接器服务不再响应时,mod_jk2会及时侦测到,并停止将请求送给它。其他的Tomcat实例则会接受失效实例的负载。

C、侦测Tomcat实例在失效后的何时恢复因连接器服务失效,而停止将请求分配给Tomcat 实例之后,mod_jk2会周期性地检查是否已恢复使用性,并自动将其加入现行的Tomcat实例池中。

5、 Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。这里提示一下就是,对每个请求的处理,Tomcat都会进行会话复制,复制后的会话将会慢慢变得庞大。

6、 Mod_jk2同时支持会话亲和和会话复制。在tomcat 5中如何实现会话亲和和会话复制?把server.xml中的标签去掉就实现会话亲和,把标签加上就实现会话复制。

7、会话亲和:就是表示来自同会话的所有请求都由相同的Tomcat 实例来处理,这种情况下,如果Tomcat实例或所执行的服务器机器失效,也会丧失Servlet的会话数据。即使在集群系统中执行更多的Tomcat实例,也永远不会复制会话数据。这样是提高集群性能的一种方案,但不具备有容错能力了。

8、使用会话复制,则当一个Tomcat实例宕掉时,由于至少还有另一个Tomcat实例保有一份会话状态数据,因而数据不会丧失。但性能会有所降低。

1.4.2SVN简介

SVN站在更高层次上对现在的安全产品,从系统和控制的角度进行了"有机"和"无隙"的整合。

SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,

使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。

SVN能在跨接Internet, Intranet, Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业VPN的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。所以,我们可以将SVN看成是VPN、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的特定带宽需求。SVN提供了目前基于网络实现的eBusiness 应用的安全服务,它包含:

对多种应用进行全面的安全认证;

支持多种认证及PKI

功能强大并对用户透明的通讯加密;

面向用户的集中安全策略管理;

统一跨接Internet、Intranet、Extranet的通讯。

完整的SVN体系结构应包括以下部分:

带有防火墙的VPN网关,它是一个将防火墙和VPN技术紧密结合的网关产品;

SVN安全远程客户端软件包,一个功能强大的VPN客户端软件,支持台式机用户、远程用户和移动用户,具有集中化管理的个人防火墙功能和VPN用户的安全认证功能;

SVN证书管理模块,一个用于SVN的完整PKI解决方案,它将完善的CA和LDAP目录服务器技术集成在一起;

SVN硬件加密卡,可以通过硬件技术实现功能强大的各种算法以提高VPN的速度和性能;

SVN智能带宽管理模块,一个基于企业策略的带宽管理解决方案,可以智能地管理有限的带宽资源,以确保用于企业重要应用的VPN性能可靠;

SVN冗余管理模块,通过冗余网关集群和防火墙VPN内的SVN冗余模块,对执行重要仸务的VPN和防火墙应用在出现故障时实现无缝切换。

自动地址转换模块,一个自动管理IP地址和命名的解决方案,通过提供IP地址服务的

跟踪和集中化管理,确保可靠地控制地址分配和提高TCP/IP管理效率;

SVN安全服务器软件包,专门保护单个应用服务器安全的VPN网关软件,它可以保护进行敏感操作的服务器免受攻击和未授权的访问,使客户端建立与服务器间的安全认证和支持交换加密数据的连接;

SVN安全客户端软件包,它将基于状态检测的防火墙和基于IPSec的VPN客户端软件集成在客户端机器上,通过提供集中管理的个人防火墙和对所有企业 VPN用户的安全认证,增强客户端机器的安全性。它与SVN安全远程客户端软件功能相比,增强了客户端的安全功能,如访问控制和安全初始化控制等。

2技术介绍

2.1技术目标

集成Apache和Tomcat,实现Tomcat的集群和负载均衡。

2 .2网络架构

采用局域网或单机环境。

硬件设备,服务器采用台式机或笔记本电脑,最低配置,内存512M以上、硬盘10G以上。客户端采用台式机或笔记本。

2.3软件架构

3.详细步骤

3.1JDK安装

方法1:

1. jdk-6u22-linux-i586.bin

2.更改权限 chmod u+x jdk-6u22-linux-i586.bin

3.执行 ./jdk-6u22-linux-i586.bin 命令进行安装,会在当前目录下生成jdk1.6.0_22文

件夹,我这里要把它移动到/usr/local/java/目录下。

4.配置环境变量

vi /etc/profile

在最后面加上

export JAVA_HOME=/usr/local/java/jdk1.6.0_22

export CLASSPATH=.:$JAVA_HOME/lib

export PATH=$JAVA_HOME/bin:$PATH

重新加载环境变量:source /etc/profile

5.测试Java是否安装成功

输入 java -version,如果出现这个信息,就说明JDK安装成功了:

java version "1.7.0_55"

Java(TM) SE Runtime Environment (build 1.7.0_55-b13)

Java HotSpot(TM) Server VM (build 24.55-b03, mixed mode)

方法2.

1.安装 jdk-7u55-linux-i586.rpm 包并在安装过程中显示正在安装的文件信息及安装进度

rpm -ivh 路径名/jdk-7u55-linux-i586.rpm

2.测试Java是否安装成功

输入 java -version,如果出现这个信息,就说明JDK安装成功了:

java version "1.7.0_55"

Java(TM) SE Runtime Environment (build 1.7.0_55-b13)

Java HotSpot(TM) Server VM (build 24.55-b03, mixed mode)

Gems Simics 安装报告

课程设计报告 多核全系统模拟器GEMS分析 班级: 学号: 姓名: 2011年7月

1 目的和背景 由于单核处理器的处理能力已经接近极限,很难再有提高,多核处理器体系结构应运而生。在处理器体系结构的设计中,由于用硬件做测试投资大,且不便于设计,不具有多次性,因此体系结构软件仿真技术是研究中的一门新技术。 而多核全系统模拟器GEMS/Simics框架能够模拟单核处理器、并行式多处理器、阵列式处理器等体系机构。故本此课设选用构建GEMS+Simics框架,先逐步介绍搭建GEMS+Simics的各个环节,然后初步的研究单核和多核运行时程序在每个CPU中的运行情况,分析模拟器的构成及各部分的功能及性能分析。 2 安装流程 2.1软件准备 1) 在Ubuntu的官方网站上获得32位的Ubuntu10.04 2) 由于GEMS是开源软件首先在https://https://www.360docs.net/doc/a96541000.html,/gems/registercgi下进行注册,然后再在https://https://www.360docs.net/doc/a96541000.html,/gems/download.html下进行下载 3)下载Simics时麻烦一些,先在https://https://www.360docs.net/doc/a96541000.html,/register/register.php地址上进行注册,而且必须作为学生或教职员工注册,然后申请免费的license。 4) 在https://www.360docs.net/doc/a96541000.html,/ubuntu/pool/main/z/zlib/网站上下载和自己的系统配套的zlib1g_1.2.3.3.dfsg-15ubuntu1_i386.deb和zlib1g-dev_1.2.3.3.dfsg-15ubuntu1_i386.deb 5) 在https://www.360docs.net/doc/a96541000.html,/index2/unixsystem/Solaris/sol-10-u2-ga-sparc-v4/或者https://www.360docs.net/doc/a96541000.html,/us/sun/index.htm或者在网站上获得Soloris ,建议使用前者2.2安装Ubuntu 此处不建议使用虚拟机安装,因为会影响到后面的安装,如果有CD/DVD可以直接用CD/DVD安装;也可以用USB或硬盘安装;最简单的是虚拟光驱wubi安装,但磁盘空间最大只能为30G,虽然之后可以用LVPM工具进行扩充,但不建议使用,因为速度很慢,且容易出错。最好采用CD/DVD安装。 2.3GEMS/Simics安装 1) 安装必要的工具 s udo apt-get update sudo apt-get install build-essential sudo apt-get install bison sudo apt-get install flex sudo dpkg –-install zlib1g_1.2.3.3.dfsg-7ubuntu1_i386.deb sudo dpkg –-install zlib1g-dev_1.2.3.3.dfsg-7ubuntu1_i386.deb

软件配置管理过程指导说明书(超级实用)

软件配置管理过程指导说明书

目录 1 前言 (2) 1.1 目的 (2) 1.2 适用范围 (2) 1.3 术语名词解释 (2) 2 角色和职责说明 (3) 3 输入 (4) 4 入口准则 (4) 5 配置管理实施 (4) 5.1 配置库结构 (4) 5.1.1 配置库 (4) 5.1.2 配置管理库系统 (6) 5.2 配置管理流程 (6) 5.2.1 配置管理流程图 (6) 5.2.2 配置变更流程图 (7) 5.3 配置标识 (8) 5.3.1 配置库划分 (8) 5.3.2 配置库结构 (8) 5.3.3 配置项命名 (11) 5.3.4 版本编号规范 (11) 5.4 配置管理活动 (12) 5.4.1 制定配置管理计划 (12) 5.4.2 建立配置库 (12) 5.4.3 建立配置项 (12) 5.4.4 基线建立及发布过程 (12) 5.4.5 配置变更 (13) 5.4.6 配置审计 (15) 5.4.7 备份 (16) 6 输出 (16) 7 出口准则 (16) 8 本过程裁剪规定 (16)

1 前言 1.1 目的 用于描述配置管理作用和过程,规范配置管理的实施过程、活动和操作。 1.2 适用范围 适用于在软件生命周期中对各类软件项目的配置管理活动。 1.3 术语名词解释 CCB:Configuration Control Board,配置管理委员会,每个项目组需要建立项目级的CCB作为变更控制权威。CCB由质量工程师、项目经理、测试经理、配置管理员构成,有时也可以包括客户代表、上级质量部门主管。CCB组长可以是质量工程师或质量部领导,但不能是项目经理。 软件配置项:是指软件工程过程中所生产或使用的任何元素,或者是纳入软件产品的元素。它可以是说明书、计算机程序、数据结构或者开发软件产品所使用的工具等,包括:项目文档,源代码,执行程序,相关设备及资料。 软件配置管理:对软件配置项的管理称为软件配置管理。软件配置管理的目的是建立和维护软件项目整个生命周期中工作产品的完整性和可追溯性。 软件工作产品:由定义、维护和使用一个软件过程所产生的任何人工制品,包括过程描述、计划、规程、计算机程序和相关文档,无论是否打算将它们交给客户或最终用户。 软件产品:可交付给客户或最终用户的软件工作产品的子集称作软件产品 基线:基线,是开发过程中标识出的里程碑所交付的一个或多个配置项,也即指一个(或一组)配置项在项目生命周期的不同时间点上通过正式评审而进入正式受控的一种状态它有如下特征:(1)已经过正式的评审和批准;(2)作为项目发展和产品升级的基础。(3)基线变更必须经过CCB审批。 变更控制:对配置项的更改进行评价、协调、认可或不认可以及执行更改的过程。 版本发布:指从项目的配置库中将需交付给客户的所有配置项组装成一个完整的软件产品。即交付给客户的一个包括可执行程序和文档的发布基线称为发布(release)。 配置审计:可以分为物理审计和功能审计。物理审计审查配置项的外在特征的正确性与一致性,主要考查软件受控库的结构、内容及其它相关信息,以验证基线和描述它的文档的一致性;功能审计审查配置项内容的正确性与一致性,主要考核配置项在实现功能上的一致性,功能审计主要通过评审和测试报告体现。 物理审计的内容包括: ? 确认配置项标识的正确性; ? 确认已受控配置项的更改是受到控制的; ? 验证配置库内容与相应记录之间的一致性; ? 验证配置管理活动与相应记录之间的一致性; ? 验证配置管理工作是否符合适用的标准和规程; ? 验证配置管理系统与系统备份的有效性、一致性等。 功能审计的内容包括: ? 验证当前基线所含配置项对前一基线所含配置项的追溯性; ? 确认当前基线所含配置项均正确反映了项目需求; ? 评估基线的完整性; ? 验证当前基线和各基线间所含配置项的一致性; 验证配置库内容的完备性和正确性等。

系统配置实用程序的设置和应用

1:Alerter服务:选择“手动/禁用”是明智之举。微软对警报器服务的描述为: 通知所选用户和计算机有关系统管理级警报,就是在系统出现错误的情况下能及 时向用户发出通告。对于普通应用人员来讲,禁用它可以阻止像IE出现错误、要 求发送错误报告之类对话框的出现,因为这些错误报告对于我们来说毫无用处, 所以选择禁用它是明智之举 2:application layer gateway service为internet连接共享和internet连接防 火墙提供第三方协议插件的支持如果你没启用internet连接共享或windows xp内 置防火墙,可以禁止这个服务。他不影响网络共享放心关闭吧,只是一个插件。这 个可占了内存资源1.5MB关了哦 3:Application management用于设定,发布和删除软件服务。SQL安装时,提 示“系统有一个程序的安装副本在运行之中,请重新启动电脑”等提示,一般重 启即可,但如果这个服务不开,重启N次也没有用网吧客户机建议手动,服务器 装了SQL的话也禁止吧(负带影响:有时候安装东西的时候会提示服务未启动,有时候又正常) 4:automatic updates自动从windows update启用windows更新的下载和安装需 要时,我们完全可以在windows update web网站手动进行更新。禁啦开这个服务 简直浪费系统资源。另外附加一句,需要手动更新的时候,需将此服务开启 5:Background Intelligent Transfer Service该服务的中文意思为智能备份和 传输服务,用于在局域网中利用空闲的网络带宽传输数据。这个服务被禁用可带 来一些好处,因为它存在一个小BUG,某些Windows XP系统会因为它的缺陷而在启动到桌面环境时出现任务栏暂时锁死的现象,禁用它能立马解决此故障放心禁止吧,补充一句:刚听朋友说,关闭此服务有一定的负面影响,网站上不能使用手 工更新功能了,大家知道就行了。 6:ClipBook这项服务的作用是储存粘贴信息并与远程计算机共享此信息,Windows XP的“剪贴簿查看器”就是依赖这项服务来工作的。如果此项服务被终止,“剪贴簿查看器”将无法与远程计算机共享信息,相反地,它的好处在于可 以杜绝一些隐私外泄的安全隐患放心禁止准没有错 7:COM+ Event System一些COM+ 软件需要,检查你的c:\program files\ComPlus Applications 目录,没东西可以把这个服务关闭(注意是这个路 径里面的服务没有东西可以关闭,不是指COM服务,以免大家又误会).不能禁 止的服务不过喜欢PF降低的朋友就禁止吧! 8:COM+ System Application管理基于COM+ 组件的配置和跟踪。禁止吧没关系的 9:Computer Browser用来浏览局域网电脑的服务,但关了也不影响浏览!所以 禁止啊降低PF哦 10:Cryptographic Services Windows更新时用来确认windows 文件指纹的,手 动或者禁止吧,比较保守的朋友就手动。和我这样的玩火使者就禁吧降低PF要紧,懒得运行了其他东东把这个服务又给开起了。 11:DCOM Server Process Launcher 此服务级重要程度(中级)终止或禁用此 服务会造成系统不稳定,大家可别打这个注意啊。虽然不影响你正常开机和使用 系统稳定为重啦。当然你们要跟谁比PF底的话哈哈把这个也禁了吧,看谁狠。补充描述:SP2新增的服务,DCOM(分布式组件对象模式),关闭这个服务会造成很多手动服务无法在需要的时候自动启动,很麻烦。比如一些软件无法正常安装,flashmx ,还有些打印机的驱动无法安装,都提示错误“RPC服务器不可用”。建

Ruby的简单实例

Ruby的简单实例 ?出处:站长百科 ?原文地址:https://www.360docs.net/doc/a96541000.html,/wiki/Ruby的简单实例 ?本电子书整理自站长百科Ruby简单实例词条,查看内容请访问网站。 让我们写一个计算阶乘的函数.对于阶乘的数学定义如下: n! = 1 (当 n==0 时) = n * (n-1)! (其它情况) 在Ruby里,可以这样来写: def fact(n) if n == 0 1 else n * fact(n-1) end end ?出处:站长百科

你可能会发现 end 的反复出现,正因为如此,Ruby被叫做"类Algol"语言.(实际上,Ruby的语法更像Eiffel).同时,你也可能会发现这段函数缺少 return语句.在这里是可以用return的,但却不是必须的,因为一个Ruby的函数会自动返回它所最后赋值的元素. 让我们来试试我们的阶乘函数.加入一行代码会使它成为一个可工作的程序: # Program to find the factorial of a number # Save this as fact.rb def fact(n) if n == 0 1 else n * fact(n-1) end end print fact(ARGV[0].to_i), "\n" ?出处:站长百科

这里,ARGV是一个包含命令行参数的数组,to_i将字符串转化为整数. % ruby fact.rb 1 1 % ruby fact.rb 5 120 当参数为40时它可以工作吗?它将使你的计算器产生溢出(overflow)... % ruby fact.rb 40 815915283247897734345611269596115894272000000000 它确实算出来了.实际上,Ruby能处理任何你机器的内存所允许的整数.实际上400!也可以: % ruby fact.rb 400 6403452284662389526234797031950300585070258302600295945 8684 4459428023971691868314362784786474632646762943505750358?出处:站长百科

实用的系统配置实用程序(Msconfig)使用比360好用多了

系统配置实用程序(Msconfig)使用 初学者在使用电脑过程中,肯定会碰到各种各样的问题:如怎么管理电脑的自启动程序、如何查看加载的系统服务、怎样从安装光盘提取丢失的系统文件等。为了解决类似问题,微软在系统中提供了一个实用工具——系统配置实用程序(Msconfig)。 以系统管理员身份登录系统后,单击“开始→运行”输入“Msconfig”回车后即可启动系统配置实用程序(图1)。下面笔者就结合几个应用实例来详细介绍Msconfig的使用(以WinXP为例)。 “一般”选项不一般 1.选择启动方式 默认情况下,Windows采用的是正常启动模式(即加载所有驱动和系统服务),但是有时候由于设备驱动程序遭到破坏或服务故障,常常会导致启动出现一些问题,这时可以利用Msconfig的其它启动模式来解决问题。单击“一般”选项,在“启动模式”选择“诊断启动”(图2),这种启动模式有助于我们快速找到启动故障原因。此外,还可以选择“有选择的启动模式”,按提示勾选需要启动项目的即可。

小提示:诊断启动是指系统启动时仅加载基本设备驱动程序如显卡驱动,而不加载Modem、网卡等设备,服务也仅是系统必须的一些服务。这时系统是最干净的,如果启动没有问题,可以依次加载设备和服务来判断问题出在哪里。 2.从安装光盘提取丢失系统文件 虽然WinXP具备强大的文件保护功能,不过有时候由于安装/卸载软件或误操作,还是经常会造成系统文件的丢失。一般重要的系统文件,在系统安装光盘CAB文件中都可以找到。单击上图的“展开文件”,然后在弹出窗口中依次输入要还原的文件(填入丢失文件名)、还原自(单击“浏览自”,选择安装光盘的CAB压缩文件)、保存文件到(选择保存文件路径,WinXP/2000一般为c:windowssystem32,Win98则为c:windowssystem),最后单击“展开”(图3),系统会自动解压CAB文件,将系统文件从安装光盘提取到电脑。 小知识: 可以先用系统的SFC命令来扫描系统文件的改动,找出变化的系统文件,命令格式:SFC [/SCANNOW] [/SCANONCE]

《Ruby on Rails敏捷开发最佳实践》PDF教程

《Ruby on Rails敏捷开发最佳实践-精典章节收录》PDF教程 申明:本PDF教程由https://www.360docs.net/doc/a96541000.html,网站搜集整理,如需转载,请务必注明出处。介绍:Ruby On Rails框架一经推出,立即引起B/S结构应用开发领域革命性的变化:开发者无需理会架构,只需要按Rails框架的约定向应用中填充代码,一切OK。 为了让众多Ruby On Rails学习、工作者,以及准备使用Ruby On Rails作为开发平台的开发人员能快速掌握Ruby On Rails的开发,作者精心编写了本书,书中既详细讲解了Ruby语言的基本语法,又重点介绍了Rails框架相关知识点的各种用法。最后给出两个综合案例,作为Ruby On Rails应用开发者的参考,读者可以通过这两个案例触类旁通,解决日常开发中的问题。 读者对象 本书适用于正在使用Ruby On Rails进行应用开发的开发人员、渴望了解Ruby On Rails框架的开发人员,尤其适合有初步的Java EE开发经验,想从Java EE平台过渡到Ruby On Rails开发平台的开发者。(未完待续) https://www.360docs.net/doc/a96541000.html,

第15章Rails 的邮件抽象层 本章要点 ·电子邮件的基础知识 ·SMTP 协议初步 ·POP3协议初步 ·在Ruby 程序中使用SMTP 支持发送邮件 ·在Ruby 程序中使用POP3支持接收邮件 ·ActionMailer::Base 的邮件支持 ·在Rails 应用中发送邮件 ·发送HTML 格式邮件 ·发送带附件的邮件 ·电子邮件在实际应用中的用途 ·账户需要激活的优势 ·实现注册激活系统 15.4注册激活系统 本章将介绍一个注册激活系统,当用户输入注册信息时,必须输入有效的邮箱,当用户注册成功后,并不能立即登录系统,而要登录注册时输入的邮箱,然后通过该邮箱内的激活邮件来激活自己账户。通过这种方式可以防止用户恶意注册,保证用户必须输入有效的邮箱地址。 15.4.1基本注册功能 当用户注册一个账户时,实际上就等同于向底层数据表增加一条记录,因此本应用必须有持久层支持。本示例应用的注册功能需要一个数据表支持,该数据表用于保存系统的所有注册账户。下面是本应用的数据库脚本: drop database if exists regist_development; create database regist_development; use regist_development; --创建用户表 create table users ( id int not null auto_increment,

系统配置实用程序默认启动项说明

系统配置实用程序默认启动项说明 internat.exe 注意!!这里的internat可不是因特网呀!!和internet差一个字哪!!这个internat是输入法图标的工具,也就是任务栏里面的En图标。(也是MSCONFIG 从98移植到2000以后启动项里唯一还可以看到的一个。) TaskMonitor C:\WINDOWS\taskmon.exe 任务检测程序,这个监视器将记录使用软件的情况,然后将这些资料保存到windows\applog 的applog.ind 文件中(WIN2000无该项) ScanRegistry C:\WINDOWS\scanregw.exe /aotorun 注册表备份程序,每次开机都备份一次注册表。(WIN2000无该项) SystemTray SysTray.Exe 驻留内存管理程序,在98下可以使电脑用一段时间后系统越来越慢的情况减轻一点。(WIN2000无该项) SchedulingAgent C:\WINDOWS\SYSTEM\mstask.exe 系统计划任务程序,一般没什么用. (WIN2000无该项) LoadPowerProfile Rundll32.exe powrprof.dll,LoadCurrentPwrScheme 电源管理程序,如果禁用,“控制面版”中“电源管理/显示属性”里的设置就没有效果了。该项往往会出现两次,保留一个即可。(WIN2000无该项) 看到这您可能会说,即使把Msconfig从98移植到了2000下,每一次都要确定它的出错信息不说,功能更是被七折八扣的所剩无几,还有什么意义呢。不要急,微软最最成功之处就在于十分懂得亡羊补牢。在XP中,我们不但发现Msconfig重新回来了,而且脱胎换骨,崭换新颜。 XP篇 只是这次,微软将它藏到了XP中的windows\pchealth\helptr\binaries子目录下。把它复制到2000中(位置同上),开始、运行,没有了恼人的四次出错信息,加宽加大的对话框直接弹出,让你顿时领略到“增强版”的气息。 在新的系统配置实用程序中,四个配置文件中的System.ini和Win.ini虽然依

ruby入门教程 免费篇

介绍 这是一个短小的Ruby入门,完全读完只需20分钟。这里假设读者已经安装了Ruby,如果你没有安装的话,请在阅读文前访问Ruby 官方网站进行下载并安装。 交互式的Ruby 打开IRB(交互式Ruby外壳): 如果你使用Mac OS X,那么请打开终端窗口输入irb; 如果你使用Linux,那么请打开shell输入irb; 如果你使用windows,那么请在开始菜单中找到Ruby->fxri,并执行它。 Ok,在打开IRB之后,在其中输入"Hello World"。 Ruby听从你的安排! 发生了什么?我们刚才编写了世界上最短小的“Hello World”程序吗?这么说不太确切。第二行输出是IRB告诉我们:上一个表达式的评

估结果。如果我们希望打印出“Hello World”,那么就还需要一点努力: puts在Ruby中是一个简单的打印输出命令。后面的“=>nil”表示什么?——那是表达式的结果。Puts总是返回nil,这是Ruby中表示“绝对无值”(absolutely-positively-nothing value)的方式,看上去有些类似Java中的null。 你的免费计算器在这里! 无需做什么,我们就能把IRB作为一个简单的计算器使用: 这样就能计算3+2。够简单的!那么3乘以2如何?你可以在下面继续输入3*2,也可以回到上面(3+2处)重新修改你刚刚输入的计算公式。使用键盘上的向上键,使光标到达3+2那一行,再用左键移动光标到加号上,然后使用空格键进行修改。

下面,让我们尝试计算3的平方: 在Ruby语言中,**表示幂运算。那么如何计算平方根呢? Ok,等一下,表达式中的sqrt(9)表示什么?你一定能猜到这是计算9的平方根。而Math表示什么?不要着急,下面就让我们进一步了解像Math这样的模块。 模块——按照主题分组的代码 Math是Ruby内建的数学模块。在Ruby中,模块提供了两种角色:一种角色是将类似的方法聚集在同一个“家族”名下。因此,Math 也包括sin、tan这样的方法。第二种角色是一个圆点(dot),它标记了消息的接收者。什么是消息?在上面的例子中,sqrt(9)便是消息,它意味着调用sqrt方法取出9的平方根。 Sqrt方法调用的结果是3.0。你可能注意到它并不是3。这是因为多数情况下,数字的平方根并不是整数,所以这里返回了一个浮点数。

Ruby语言入门教程

Ruby语言入门教程 Version0.6 编著张开川 kaichuan_zhang@https://www.360docs.net/doc/a96541000.html,

目录 自序 (3) 第一章概述 (4) 1.1编程语言的发展简史 (4) 1.2编程其实很容易 (5) 1.3Ruby的由来 (6) 1.4Ruby的特性 (7) 第二章 (8) 2.1下载Ruby1.8.5 (8) 2.2安装Ruby1.8.5for Windows (8) 2.3开始第一个小程序 (10) 2.4ruby语言的集成开发环境 (12) 第三章语法快览 (14) 3.1注释与分行 (14) 3.2分隔符 (15) 3.3关键字 (16) 3.4运算符 (17) 3.5标识名和变量的作用域 (19) 3.6类库 (19) 3.7数据类型 (20) 3.8赋值和条件运算符 (21) 3.9条件判断语句 (22) 3.10循环语句 (24) 3.11常与线程 (29) 3.12一个综合小练习 (30) 第四章一切都是对象 (31) 4.1两种思维方式 (31) 4.2对象 (32) 4.3封装 (33) 4.4继承 (34) 4.5多态36小跋37

自序 其它编程语言的学习都主要来自于书本,而Ruby的学习却是完全经由网络。我想,回报网络的最好方式就是在网络上还没有Ruby中文书籍的时候,编著一本Ruby中文入门教材。感谢编程语言发展史上的前辈们;感谢网络论坛上程序员们或是理智,或是激烈的讨论;感谢一切看到这本书的人。 曾经经受了SCJP的挖掘、挖掘、再挖掘(基于1.4,还没有Java5,Java6的许多特性),初遇Ruby,觉得十分亲切,仿佛童年时得到一个新奇的玩具。把玩之后,才发现玩具的塑料外壳里,藏着一把瑞士军刀。自此,模式、框架常常变得多余,很多时候可以更直接。好比在量子时代,星际航行只是一次时空转换而已,航天飞机静静地躺在博物馆里,那是旧时代科学的极致代表。 从物理课本中,我们感受到爱因斯坦的伟大,但对牛顿则怀以更加崇敬的心情。身体终将消逝,而你,我,他——我们的意识却将在网络中延续。旧时代文明的延续依赖于纸质书籍,书籍传递了理性之光。也许直觉才是这个宇宙本体的最初相用,直觉是一种天赋,我无从把握,但是理性,如此真切实在,她照亮了我,照亮了你,直到未来。 思,亘古如斯又倏忽闪现,谁的惊愕能深究它。 ——海德格尔 张开川 2006年12月31日

计算机常用程序(你知道几个)

ac3filter.cpl AC3解码器 access.cpl 辅助功能选项 accwiz 辅助功能向导 appwiz.cpl 添加或删除程序 calc 计算器 certmgr.msc 证书管理 charmap 字符映射表 chkdsk 磁盘检查 ciadv.msc 索引服务 cintsetp 仓颉拼音输入法 cleanmgr 磁盘清理 cliconfg SQL客户端网络实用工具 clipbrd 剪贴板查看器 cmd 命令行提示符 command 命令提示符 compmgmt.msc 计算机管理 conf netmeeting control 控制面板 control admintools 管理工具 control color 显示属性的外观选项卡 control desktop 显示属性 control folders 文件夹选项

control fonts 字体文件夹 control keyboard 键盘属性control mouse 鼠标属性 control netconnections 网络连接control printers 打印机和传真control schedtasks 任务计划dcomcnfg 组件服务 ddeshare DDE共享 desk.cpl 显示属性 devmgmt.msc 设备管理器dfrg.msc 磁盘碎片整理directx.cpl Directx控制面板diskmgmt.msc 磁盘管理diskpart 磁盘分区管理器 drwtsn32 系统医生 dvdplay DVD播放器 dxdiag Direct X诊断工具eudcedit 造字程序 eventvwr 事件查看器 explorer 资源管理器 findfast.cpl 快速查找 firewall.cpl Windows防火墙

ruby文件操作

1ruby文件操作 关键字:file ruby 转! 1检测文件是否存在及其大小 FileTest的exist?方法可以检测一个文件是否存在: Ruby代码 1.flag=FileTest::exist?("LochNessMonster") 2.flag=FileTest::exists?("UFO") 3.#exists?is a synonym for exist? Ruby代码 1.flag=FileTest::exist?("LochNessMonster") 2.flag=FileTest::exists?("UFO") 3.#exists?is a synonym for exist? 如果我们想要知道文件是否有内容,可以使用File::Stat的zero?方法: Ruby代码 1.flag=File.new("somefile").stat.zero? Ruby代码 1.flag=File.new("somefile").stat.zero? 这个将会返回true,这是因为在ruby中0也是true,nil才是false. 所以我们可以使用size?方法: Ruby代码 1.if File.new("myfile").stat.size? 2.puts"The file has contents." 3.else 4.puts"The file is empty." 5.end

1.if File.new("myfile").stat.size? 2.puts"The file has contents." 3.else 4.puts"The file is empty." 5.end FileTest模块里面也有zero?和size?方法: Ruby代码 1.flag1=FileTest::zero?("file1") 2.flag2=FileTest::size?("file2") Ruby代码 1.flag1=FileTest::zero?("file1") 2.flag2=FileTest::size?("file2") 这里还有一个size方法: Ruby代码 1.size1=File.size("file1") 2.size2=File.stat("file2").size Ruby代码 1.size1=File.size("file1") 2.size2=File.stat("file2").size 2检测特殊文件属性 这边要注意,File类mix了FIleTest模块,并且FileTest模块和File::Stat 模块功能上也有很多重复. unix/linux有面向字符和面向块的设备。FileTest的方法blockdev?和chardev?可以进行测试:

Ruby中单元测试(Unit Test)方法

Ruby中单元测试(Unit Test)方法 Ruby中也提供了单元测试的框架,类似Java中的JUnit,此框架在Ruby中被成为mini test。 我们先看一个例子,这个是我的源代码: [code lang=”ruby”] require ‘json’ module PMU_INTERFACE class IUserLoginReq def initialize(command_id=nil, user_name=nil, user_password=nil, auth_code=nil, token=nil) @command_id = command_id @user_name = user_name @user_password = user_password @auth_code = auth_code @token = token end def to_json(*a) { "json_class" => self.class, "data" => self.to_json_hash }.to_json(*a) end def to_json_hash {:command_id => @command_id, :user_name => @user_name, :user_password => @user_password, :auth_code => @auth_code, :token => @token} end def self.json_create(json_str) data = json_str["data"] new(data["command_id"], data["user_name"], data["user_password"], data["auth_code"], data["token"]) end attr_accessor :command_id, :user_name, :user_password, :auth_code end class IUserLoginResp def initialize(result=nil, user_name=nil, user_password = nil) #the login result @result = result #the token holding by client @user_name = user_name @user_password = user_password end def to_json(*a) { "json_class" => self.class,

巧设msconfig 让Windows7启动更快一步

巧设msconfig 让Windows7启动更快一步 我们知道,在Windows系统里,有个非常实用的程序——msconfig,即系统配置实用程序。该程序为系统启动和加载项设置,合理的配置可以大大提升系统的启动速度和运行效率。 在Windows7系统里,我们可以通过在开始菜单的搜索框里直接输入msconfig后回车,即可打开“系统配置”窗口。 ▲在开始菜单里输入程序命令 ▲弹出的系统配置 由于安装的程序越来越多,并且现在很多程序都默认启动系统自动加载,这无疑会使系统启动变得很慢,比如杀毒软件、办公软件、一些优化软件等,在启动系统时,就会自动加载。除了在软件中设置为系统启动时不运行,通过msconfig中的“启动”也可以删除一些不常用的启动项。由于各个电脑安装软件的环境不一样,这里不再多说,但可以告诉大家的是,“启动”项里的所有程序都可以禁止,如果你发现系统在启动时遇到了问题,也可以再行逐个恢复。 这里我们主要说一下如何通过msconfig设置,让系统启动更快——而不是简单的禁止第三方软件。其实也简单,在“系统配置”窗口中的“引导”选项卡里,我们看到一个“超时”,这里默认的时间是30秒,我们修改为“3”。

之后点击“高级选项”,在“处理器数”下拉选项中选“2”,勾选“最大内存”,这里的数字无需修改。 ▲引导高级选项 点击确定后,进入“工具”选项卡,选择“更改UAC设置”来更改用户账户控制设置,这里点击“启动”,设置完msconfig确定后退出,会提示你重新启动系统,选择重新启动。

理论说,这样做是可以提高你的系统启动时间,但由于Windows7分为多个版本,并且对不同的硬件设备有着优化,如果你的硬件本身就不高,又安装了 Windows7旗舰版,还打开了全部的特效,那无疑会很慢。并且,我也不建议大家在使用第三方所谓的优化工具,可以说没用。 题外话,如果对于速度特别有追求的,你也可以进一步将系统的UAC关闭——实际上我不建议这么做! UAC(User Account Control,即用户帐户控制),它要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,提供权限或管理员密码。通过在这些操作启动前对其进行验证,UAC 可以帮助防止恶意软件和间谍软件在未经许可的情况下在计算机上进行安装或对计算机进行更改。 但是,一些用户也因为UAC的提示而感到“多余”,所以,这里我们可以选择关闭。 如何关闭Windows7的UAC? 打开控制面板,找到“用户账户”,在“更改用户账户”里,点击“更改用户账户控制设置”,在弹出的窗口里,将左侧的刻度条,拉到最下面“从不通知”。

Ruby on Rails 之 Oracle 应用:简易教程

Ruby on Rails 之 Oracle 应用:简易教程 您可能听说过 Ruby on Rails,一个似乎正以狂风暴雨之势席卷 Web 开发社区(尤其是 JEE 和 PHP 的编程人员)的新应用框架。 Rails 是功能强大的 Web 应用平台,而且深受 JEE 和 PHP 的编程人员的喜爱。当您了解了 Rails 的优势后,您就会理解它为何对 J2EE 和 PHP 编程人员有如此的吸引力。首先,它使用任何自视甚高的设计模式专家都很钦佩的严格的模型-视图-控制器体系结构;这可以解释它为什么吸引了大量 JEE 开发人员。其次,使用 Rails 可以轻松地构建基本系统—这对 PHP 开发人员具有吸引力。 然而,从数据库的角度来说,Rails 还是有一些非常大的局限性。Rails 对您的数据库布局和应用程序需求做出了许多假定。例如,Rails 假定所有表都使用单一的非组合式主键。需通过Rails 插件支持组合式主键。此外,Rails 支持多数据库而且可以对其间事务进行协调;Rails 不支持两阶段提交。 本文章的目的不在于对 Rails 进行赞扬或批评,而只是对该技术的介绍。其中包含表扬也包含有批评。有时批评可能看起来过重了(尤其对于那些 Rails 的热爱者来说),但是请不要将 Rails 看得神乎其神。使用任何 Web 应用框架都是需要技巧的,无论是 JEE、https://www.360docs.net/doc/a96541000.html, 还是 PHP。从长远来看,使用 Rails 可能比使用许多其他 Web 应用程序开发平台更高效,但是也需要假以时日来学习其中的技巧。 Ruby 是什么?Rails 是什么? Ruby 是一种动态编程语言,在很多方面和 Perl、Python 以及 Smalltalk 相似,但也有自己的特点。Java 和 PHP 编程人员似乎可以非常轻松地学会该语言,而且他们是 Ruby 的最忠实的拥护者。但是其他人也为该语言所吸引;这其中还包括著名的 Microsoft 王国中最资深的专家之一 Don Box。 Ruby 并不是新生事物;它创建于 1993 年,时间比 1995 年发布的 Java 或 PHP 都要久。当时 Ruby 语言虽已成熟,但不如某些其他语言受欢迎。因此,Ruby 编程语言的周边体系并不像 Java、PHP 或 Perl 那样丰富。因此,您能找到的有关该语言的框架、信息库、书籍、Web 站点、网志和其他资源也相对较少。 David Heinemeier Hanson 提出了 Rails 框架(Ruby 历史上最受欢迎的应用程序)后,Ruby 社区的软弱无力的市场表现近期发生了变化。Rails 将 Ruby 编程语言扩展为域特定的语言,特别适合 Web 开发。它还使用了另一种语言扩展ActiveRecord,使 Ruby 具有对象关系持久性。除了不支持组合主键和两阶段提

计算机常用运行指令大集合

开始菜单中的“运行”是通向程序的快捷途径,输入特定的命令后,即可快速的打开Windows 的大部分程序,熟练的运用它,将给我们的操作带来诸多便捷。 winver 检查Windows版本 wmimgmt.msc 打开Windows管理体系结构(wmi) wupdmgr Windows更新程序 wscript Windows脚本宿主设置 write 写字板 winmsd 系统信息 wiaacmgr 扫描仪和照相机向导 winchat xp自带局域网聊天 mem.exe 显示内存使用情况 msconfig.exe 系统配置实用程序 mplayer2 简易widnows media player mspaint 画图板 mstsc 远程桌面连接 mplayer2 媒体播放机 magnify 放大镜实用程序 mmc 打开控制台 mobsync 同步命令 dxdiag 检查directx信息 drwtsn32 系统医生 devmgmt.msc 设备管理器 dfrg.msc 磁盘碎片整理程序 diskmgmt.msc 磁盘管理实用程序 dcomcnfg 打开系统组件服务 ddeshare 打开dde共享设置 dvdplay dvd播放器 net stop messenger 停止信使服务 net start messenger 开始信使服务 notepad 打开记事本 nslookup 网络管理的工具向导 ntbackup 系统备份和还原 narrator 屏幕“讲述人” ntmsmgr.msc 移动存储管理器 ntmsoprq.msc 移动存储管理员操作请求

netstat -an (tc)命令检查接口 syncapp 创建一个公文包 sysedit 系统配置编辑器 sigverif 文件签名验证程序 sndrec32 录音机 shrpubw 创建共享文件夹 secpol.msc 本地安全策略 syskey 系统加密,一旦加密就不能解开,保护Windows xp系统的双重密码services.msc 本地服务设置 sndvol32 音量控制程序 sfc.exe 系统文件检查器 sfc /scannow windows文件保护tsshutdn 60秒倒计时关机命令 tourstart xp简介(安装完成后出现的漫游xp程序) taskmgr 任务管理器 eventvwr 事件查看器 eudcedit 造字程序 explorer 打开资源管理器 packager 对象包装程序 perfmon.msc 计算机性能监测程序 progman 程序管理器 regedit.exe 注册表 rsop.msc 组策略结果集 regedt32 注册表编辑器 rononce -p 15秒关机 regsvr32 /u *.dll 停止dll文件运行 regsvr32 /u zipfldr.dll 取消zip支持 cmd.exe cmd命令提示符 chkdsk.exe chkdsk磁盘检查 certmgr.msc 证书管理实用程序 calc 启动计算器 charmap 启动字符映射表 cliconfg sql server 客户端网络实用程序 clipbrd 剪贴板查看器

Anaconda介绍、安装及使用教程

Anaconda介绍、安装及使用教程 开源 安装过程简单 高性能使用Python和R语言 免费的社区支持 其特点的实现主要基于Anaconda拥有的: conda包 环境管理器 1,000+开源库 如果日常工作或学习并不必要使用1,000多个库,那么可以考虑安装Miniconda(图形界面下载及命令行安装请戳 3. Anaconda、conda、pip、virtualenv的区别 ① Anaconda Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。 ② conda conda是包及其依赖项和环境的管理工具。 适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。 适用平台:Windows, macOS, Linux 快速安装、运行和升级包及其依赖项。 在计算机中便捷地创建、保存、加载和切换环境。 如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本。——conda官方网站 conda为Python项目而创造,但可适用于上述的多种语言。 conda包和环境管理器包含于Anaconda的所有版本当中。 ③ pip pip是用于安装和管理软件包的包管理器。 pip编写语言:Python。 Python中默认安装的版本: Python 2.7.9及后续版本:默认安装,命令为pip Python 3.4及后续版本:默认安装,命令为pip3 “Pip installs Python”(“pip安装Python”) ④ virtualenv virtualenv:用于创建一个独立的Python环境的工具。 解决问题: 当一个程序需要使用Python 2.7版本,而另一个程序需要使用Python 3.6版本,如何同时使用这两个程序? 如果将所有程序都安装在系统下的默认路径,如:/usr/lib/python2.7/site-packages,当不小

相关文档
最新文档