当前位置:首页 » 编程语言 » pythonrestful实现

pythonrestful实现

发布时间: 2022-07-04 23:57:11

‘壹’ python3如何实现 远程调用

XMLRPCLIB或者是rpyc两个库都简单好用。还有些老版本的远程 过程 调用,都有很多限制。其实restful方式,通过WEB远程调用也不是不可以呵。

rpyc效率不高,不过简单,强大。 可以在pypi这个网站下载,其它的包也可以在这里下载。

另外如果自己想追求效率,可以直接使用socketserver,帮助里有一个例子,复制过来改一改就能用。
此外 twist方式实现的通讯也很强大。

rpyc是源码。你直接python setup.py install就可以安装上。 不需要编译好的版本。也不存在不兼容的问题。

此外thrift, avro都是hadoop大数据环境里常用的协议,还有protocol_buf,都可以研究一下。

‘贰’ restful哪种实现方式性能最好

  1. 基于RESTful 的几种实现
    1.1. Rails

    Ruby on Rails是新兴的敏捷Web开发框架,在动态语言Ruby的支持下,Rails以新鲜的视角告诉我们Web开发是简单而快乐的。Rails对 RESTful Web Service的开发作了极大的封装和简化,这对开发人员来说是一个强大的工具。而且即将发布的Rails 2.0将全面基于REST。
    1.2. Axis2

    Apache Axis2是传统的java Web Service框架Axis的下一代版本。从最初的Apache Axis和Apache SOAP到目前的Axis2,经历了大量变革和发展。相对以前的版本,Axis2更灵活、更高效、更简单。作为Java端官方和传统Web Service框架,在REST与SOAP的硝烟弥漫、战火纷飞的状况下,Axis2尝试同时支持SOAP和REST,采用了WSDL2.0中将REST 与Web服务结合的工作成果。
    1.3. Django

    Django是基于python语言的敏捷Web和Web服务开发框架,它的设计与Rails十分类似,只不过简化和封装稍少一些。
    1.4. JSR 311: JAX-RS

    JAX-RS(JSR 311,Java API for XML-RESTful Web Services)是基于annotation的实现方式,我们通过annotation的方式把一个java class标注成RESTful web service,并把它的方法标注成HTTP的CRUD。相关的annotation有@path @Proces@GET @POST @DELETE @PUT @PathParam等,对java开发人员在使用起来比较方便。

    目前已经有很多现成的实现,比如Jersey Apache CXF JBoss RESTEasy


    1.5. 其他支持RESTful的Java框架

    Restlet(http://www.restlet.org/)

    Cetia4(https://cetia4.dev.java.net/)

    Apache Axis2(http://http://ws.apache.org/axis2/)

    sqlREST(http://sqlrest.sourceforge.net/)

    REST-art(http://rest-art.sourceforge.net/)


    RESTEasy的性能要好于 Jersey,无论哪种嵌入式JEE容器。

    Jersey+Grizzly2和Jersey+Jetty, dropwizard性能差别不大

    dropwizard底层实际是Jersey+Jetty,性能结果也和Jersey+Jetty一样

    RESTEasy+netty (netty3)的结果并没有优于RESTEasy+undertow.这出乎我的意料,可能CPU和Memory占用上会好一些

    RESTEasy+netty4的性能远远低于RESTEasy+netty3,这出乎我的意料。或许因为Netty线程池的改变。

    纯netty的性能远远高于其它框架,一方面是由于没有http router的逻辑,另一方面也显示了Netty框架的优秀。如果不是实现很复杂的路由和很多的Service,不妨使用纯Netty实现高性能。

    Spring Boot太厚重了,使用Spring MVC的语法,性能只有Jersey的一半。

    Vert.x底层使用Netty,可以使用Java 8 Lambda语法,也提供了其它语言的支持,但是性能看起来不是太好,而且随着并发量增大吞吐率也随之下降。

‘叁’ 怎样用通俗的语言解释REST,以及RESTful

REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用 URI (Universal Resource Identifier) 得到一个惟一的地址。所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。Hypermedia 是应用程序状态的引擎,资源表示通过超链接互联。另一个重要的 REST 原则是分层系统,这表示组件无法了解它与之交互的中间层以外的组件。通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。当REST 架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。它还降低了客户端和服务器之间的交互延迟。统一界面简化了整个系统架构,改进了子系统之间交互的可见性。REST 简化了客户端和服务器的实现。RESTful的实现:RESTful Web 服务与 RPC 样式的 Web 服务了解了什么是什么是REST,我们再看看RESTful的实现。最近,使用 RPC 样式架构构建的基于 SOAP 的 Web 服务成为实现 SOA 最常用的方法。RPC 样式的 Web 服务客户端将一个装满数据的信封(包括方法和参数信息)通过 HTTP 发送到服务器。服务器打开信封并使用传入参数执行指定的方法。方法的结果打包到一个信封并作为响应发回客户端。客户端收到响应并打开信封。每个对象都有自己独特的方法以及仅公开一个 URI 的 RPC 样式 Web 服务,URI 表示单个端点。它忽略 HTTP 的大部分特性且仅支持 POST 方法。由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。可以使用各种语言(比如 Java 程序、Perl、Ruby、Python、php 和 Javascript[包括 Ajax])实现客户端。RESTful Web 服务通常可以通过自动客户端或代表用户的应用程序访问。但是,这种服务的简便性让用户能够与之直接交互,使用它们的 Web 浏览器构建一个 GET URL 并读取返回的内容。在REST 样式的 Web 服务中,每个资源都有一个地址。资源本身都是方法调用的目标,方法列表对所有资源都是一样的。这些方法都是标准方法,包括 HTTP GET、POST、PUT、DELETE,还可能包括 HEADER 和 OPTIONS。在RPC 样式的架构中,关注点在于方法,而在 REST 样式的架构中,关注点在于资源 —— 将使用标准方法检索并操作信息片段(使用表示的形式)。资源表示形式在表示形式中使用超链接互联。Leonard Richar ...

‘肆’ python 后端restful 前端怎么调取数据

主要就是js对数据的操作和对dom的操作。 前端的工作就是切图,展示数据到网页中。那么怎么获取数据呢?以什么格式获取数据呢?都是需要和后台交互的。 后台语言都是不一样的:php,jsp等等,我们前端js的工作就是把他们的数据拿过来显示。

‘伍’ 如何使用python 开发一个api

使用 Python 和 Flask 设计 RESTful API

近些年来 REST (REpresentational State Transfer) 已经变成了 web services 和 web APIs 的标配。

在本文中我将向你展示如何简单地使用 Python 和 Flask 框架来创建一个 RESTful 的 web service。

什么是 REST?

六条设计规范定义了一个 REST 系统的特点:

  • 客户端-服务器: 客户端和服务器之间隔离,服务器提供服务,客户端进行消费。

  • 无状态: 从客户端到服务器的每个请求都必须包含理解请求所必需的信息。换句话说, 服务器不会存储客户端上一次请求的信息用来给下一次使用。

  • 可缓存: 服务器必须明示客户端请求能否缓存。

  • 分层系统: 客户端和服务器之间的通信应该以一种标准的方式,就是中间层代替服务器做出响应的时候,客户端不需要做任何变动。

  • 统一的接口: 服务器和客户端的通信方法必须是统一的。

  • 按需编码: 服务器可以提供可执行代码或脚本,为客户端在它们的环境中执行。这个约束是唯一一个是可选的。

  • 什么是一个 RESTful 的 web service?

    REST 架构的最初目的是适应万维网的 HTTP 协议。

    RESTful web services 概念的核心就是“资源”。 资源可以用URI来表示。客户端使用 HTTP 协议定义的方法来发送请求到这些 URIs,当然可能会导致这些被访问的”资源“状态的改变。

    HTTP 标准的方法有如下:

  • ========== ===================== ==================================

  • HTTP 方法 行为 示例

  • ========== ===================== ==================================

  • GET 获取资源的信息 http://example.com/api/orders

  • GET 获取某个特定资源的信息 http://example.com/api/orders/123

  • POST 创建新资源 http://example.com/api/orders

  • PUT 更新资源 http://example.com/api/orders/123

  • DELETE 删除资源 http://example.com/api/orders/123

  • ========== ====================== ==================================

  • REST 设计不需要特定的数据格式。在请求中数据可以以JSON形式, 或者有时候作为 url 中查询参数项。

    设计一个简单的 web service

    坚持 REST 的准则设计一个 web service 或者 API 的任务就变成一个标识资源被展示出来以及它们是怎样受不同的请求方法影响的练习。

    比如说,我们要编写一个待办事项应用程序而且我们想要为它设计一个 web service。要做的第一件事情就是决定用什么样的根 URL 来访问该服务。例如,我们可以通过这个来访问:

    http://[hostname]/todo/api/v1.0/

    在这里我已经决定在 URL 中包含应用的名称以及 API 的版本号。在 URL 中包含应用名称有助于提供一个命名空间以便区分同一系统上的其它服务。在 URL 中包含版本号能够帮助以后的更新,如果新版本中存在新的和潜在不兼容的功能,可以不影响依赖于较旧的功能的应用程序。

    下一步骤就是选择将由该服务暴露(展示)的资源。这是一个十分简单地应用,我们只有任务,因此在我们待办事项中唯一的资源就是任务。

    我们的任务资源将要使用 HTTP 方法如下:

  • ========== =============================================== =============================

  • HTTP 方法 URL 动作

  • ========== =============================================== ==============================

  • GET http://[hostname]/todo/api/v1.0/tasks 检索任务列表

  • GET http://[hostname]/todo/api/v1.0/tasks/[task_id] 检索某个任务

  • POST http://[hostname]/todo/api/v1.0/tasks 创建新任务

  • PUT http://[hostname]/todo/api/v1.0/tasks/[task_id] 更新任务

  • DELETE http://[hostname]/todo/api/v1.0/tasks/[task_id] 删除任务

  • ========== ================================================ =============================

  • 我们定义的任务有如下一些属性:

  • id: 任务的唯一标识符。数字类型。

  • title: 简短的任务描述。字符串类型。

  • description: 具体的任务描述。文本类型。

  • done: 任务完成的状态。布尔值。

  • 目前为止关于我们的 web service 的设计基本完成。剩下的事情就是实现它!

    Flask 框架的简介

    如果你读过Flask Mega-Tutorial 系列,就会知道 Flask 是一个简单却十分强大的 Python web 框架。

    在我们深入研究 web services 的细节之前,让我们回顾一下一个普通的 Flask Web 应用程序的结构。

    我会首先假设你知道 Python 在你的平台上工作的基本知识。 我将讲解的例子是工作在一个类 Unix 操作系统。简而言之,这意味着它们能工作在 Linux,Mac OS X 和 Windows(如果你使用Cygwin)。 如果你使用 Windows 上原生的 Python 版本的话,命令会有所不同。

    让我们开始在一个虚拟环境上安装 Flask。如果你的系统上没有 virtualenv,你可以从https://pypi.python.org/pypi/virtualenv上下载:

  • $ mkdir todo-api

  • $ cd todo-api

  • $ virtualenv flask

  • New python executable in flask/bin/python

  • Installing setuptools............................done.

  • Installing pip...................done.

  • $ flask/bin/pip install flask

  • 既然已经安装了 Flask,现在开始创建一个简单地网页应用,我们把它放在一个叫 app.py 的文件中:

  • #!flask/bin/pythonfrom flask import Flaskapp = Flask(__name__)@app.route('/')def index():

  • return "Hello, World!"if __name__ == '__main__':

  • app.run(debug=True)

  • 为了运行这个程序我们必须执行 app.py:

  • $ chmod a+x app.py

  • $ ./app.py

  • * Running on http://127.0.0.1:5000/

  • * Restarting with reloader

  • 现在你可以启动你的网页浏览器,输入http://localhost:5000看看这个小应用程序的效果。

    简单吧?现在我们将这个应用程序转换成我们的 RESTful service!

    使用 Python 和 Flask 实现 RESTful services

    使用 Flask 构建 web services 是十分简单地,比我在Mega-Tutorial中构建的完整的服务端的应用程序要简单地多。

    在 Flask 中有许多扩展来帮助我们构建 RESTful services,但是在我看来这个任务十分简单,没有必要使用 Flask 扩展。

    我们 web service 的客户端需要添加、删除以及修改任务的服务,因此显然我们需要一种方式来存储任务。最直接的方式就是建立一个小型的数据库,但是数据库并不是本文的主体。学习在 Flask 中使用合适的数据库,我强烈建议阅读Mega-Tutorial。

    这里我们直接把任务列表存储在内存中,因此这些任务列表只会在 web 服务器运行中工作,在结束的时候就失效。 这种方式只是适用我们自己开发的 web 服务器,不适用于生产环境的 web 服务器, 这种情况一个合适的数据库的搭建是必须的。

    我们现在来实现 web service 的第一个入口:

  • #!flask/bin/pythonfrom flask import Flask, jsonifyapp = Flask(__name__)tasks = [

  • {

  • 'id': 1,

  • 'title': u'Buy groceries',

  • 'description': u'Milk, Cheese, Pizza, Fruit, Tylenol',

  • 'done': False

  • },

  • {

  • 'id': 2,

  • 'title': u'Learn Python',

  • 'description': u'Need to find a good Python tutorial on the web',

  • 'done': False

  • }]@app.route('/todo/api/v1.0/tasks', methods=['GET'])def get_tasks():

  • return jsonify({'tasks': tasks})if __name__ == '__main__':

  • app.run(debug=True)

  • 正如你所见,没有多大的变化。我们创建一个任务的内存数据库,这里无非就是一个字典和数组。数组中的每一个元素都具有上述定义的任务的属性。

    取代了首页,我们现在拥有一个 get_tasks 的函数,访问的 URI 为 /todo/api/v1.0/tasks,并且只允许 GET 的 HTTP 方法。

    这个函数的响应不是文本,我们使用 JSON 数据格式来响应,Flask 的 jsonify 函数从我们的数据结构中生成。

    使用网页浏览器来测试我们的 web service 不是一个最好的注意,因为网页浏览器上不能轻易地模拟所有的 HTTP 请求的方法。相反,我们会使用 curl。如果你还没有安装 curl 的话,请立即安装它。

    通过执行 app.py,启动 web service。接着打开一个新的控制台窗口,运行以下命令:

  • $ curl -i http://localhost:5000/todo/api/v1.0/tasks

  • HTTP/1.0 200 OK

  • Content-Type: application/json

  • Content-Length: 294

  • Server: Werkzeug/0.8.3 Python/2.7.3

  • Date: Mon, 20 May 2013 04:53:53 GMT


  • {

  • "tasks": [

  • {

  • "description": "Milk, Cheese, Pizza, Fruit, Tylenol",

  • "done": false,

  • "id": 1,

  • "title": "Buy groceries"

  • },

  • {

  • "description": "Need to find a good Python tutorial on the web",

  • "done": false,

  • "id": 2,

  • "title": "Learn Python"

  • }

  • ]

  • }

  • 我们已经成功地调用我们的 RESTful service 的一个函数!

    现在我们开始编写 GET 方法请求我们的任务资源的第二个版本。这是一个用来返回单独一个任务的函数:

  • from flask import [email protected]('/todo/api/v1.0/tasks/<int:task_id>', methods=['GET'])def get_task(task_id):

  • task = filter(lambda t: t['id'] == task_id, tasks)

  • if len(task) == 0:

  • abort(404)

  • return jsonify({'task': task[0]})

  • 第二个函数有些意思。这里我们得到了 URL 中任务的 id,接着 Flask 把它转换成 函数中的 task_id 的参数。

    我们用这个参数来搜索我们的任务数组。如果我们的数据库中不存在搜索的 id,我们将会返回一个类似 404 的错误,根据 HTTP 规范的意思是 “资源未找到”。

    如果我们找到相应的任务,那么我们只需将它用 jsonify 打包成 JSON 格式并将其发送作为响应,就像我们以前那样处理整个任务集合。

    调用 curl 请求的结果如下:

  • $ curl -i http://localhost:5000/todo/api/v1.0/tasks/2

  • HTTP/1.0 200 OK

  • Content-Type: application/json

  • Content-Length: 151

  • Server: Werkzeug/0.8.3 Python/2.7.3

  • Date: Mon, 20 May 2013 05:21:50 GMT


  • {

  • "task": {

  • "description": "Need to find a good Python tutorial on the web",

  • "done": false,

  • "id": 2,

  • "title": "Learn Python"

  • }

  • }

  • $ curl -i http://localhost:5000/todo/api/v1.0/tasks/3

  • HTTP/1.0 404 NOT FOUND

  • Content-Type: text/html

  • Content-Length: 238

  • Server: Werkzeug/0.8.3 Python/2.7.3

  • Date: Mon, 20 May 2013 05:21:52 GMT


  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

  • <title>404 Not Found</title>

  • <h1>Not Found</h1>

  • <p>The requested URL was not found on the server.</p><p>If you entered the URL manually please check your spelling and try again.</p>

  • 当我们请求 id #2 的资源时候,我们获取到了,但是当我们请求 #3 的时候返回了 404 错误。有关错误奇怪的是返回的是 HTML 信息而不是 JSON,这是因为 Flask 按照默认方式生成 404 响应。由于这是一个 Web service 客户端希望我们总是以 JSON 格式回应,所以我们需要改善我们的 404 错误处理程序:

  • from flask import [email protected](404)def not_found(error):

  • return make_response(jsonify({'error': 'Not found'}), 404)

  • 我们会得到一个友好的错误提示:

  • $ curl -i http://localhost:5000/todo/api/v1.0/tasks/3

  • HTTP/1.0 404 NOT FOUND

  • Content-Type: application/json

  • Content-Length: 26

  • Server: Werkzeug/0.8.3 Python/2.7.3

  • Date: Mon, 20 May 2013 05:36:54 GMT


  • {

  • "error": "Not found"

  • }

  • 接下来就是 POST 方法,我们用来在我们的任务数据库中插入一个新的任务:

  • from flask import [email protected]('/todo/api/v1.0/tasks', methods=['POST'])def create_task():

  • if not request.json or not 'title' in request.json:

  • abort(400)

  • task = {

  • 'id': tasks[-1]['id'] + 1,

  • 'title': request.json['title'],

  • 'description': request.json.get('description', ""),

  • 'done': False

  • }

  • tasks.append(task)

  • return jsonify({'task': task}), 201

  • 添加一个新的任务也是相当容易地。只有当请求以 JSON 格式形式,request.json 才会有请求的数据。如果没有数据,或者存在数据但是缺少 title 项,我们将会返回 400,这是表示请求无效。

    接着我们会创建一个新的任务字典,使用最后一个任务的 id + 1 作为该任务的 id。我们允许 description 字段缺失,并且假设 done 字段设置成 False。

    我们把新的任务添加到我们的任务数组中,并且把新添加的任务和状态 201 响应给客户端。

    使用如下的 curl 命令来测试这个新的函数:

  • $ curl -i -H "Content-Type: application/json" -X POST -d '{"title":"Read a book"}' http://localhost:5000/todo/api/v1.0/tasks

  • HTTP/1.0 201 Created

  • Content-Type: application/json

  • Content-Length: 104

  • Server: Werkzeug/0.8.3 Python/2.7.3

  • Date: Mon, 20 May 2013 05:56:21 GMT


  • {

  • "task": {

  • "description": "",

  • "done": false,

  • "id": 3,

  • "title": "Read a book"

  • }

  • }

  • 注意:如果你在 Windows 上并且运行 Cygwin 版本的 curl,上面的命令不会有任何问题。然而,如果你使用原生的 curl,命令会有些不同:

  • curl -i -H "Content-Type: application/json" -X POST -d "{"""title""":"""Read a book"""}" http://localhost:5000/todo/api/v1.0/tasks

  • 当然在完成这个请求后,我们可以得到任务的更新列表:

  • $ curl -i http://localhost:5000/todo/api/v1.0/tasks

  • HTTP/1.0 200 OK

  • Content-Type: application/json

  • Content-Length: 423

  • Server: Werkzeug/0.8.3 Python/2.7.3

  • Date: Mon, 20 May 2013 05:57:44 GMT


  • {

  • "tasks": [

  • {

  • "description": "Milk, Cheese, Pizza, Fruit, Tylenol",

  • "done": false,

  • "id": 1,

  • "title": "Buy groceries"

  • },

  • {

  • "description": "Need to find a good Python tutorial on the web",

  • "done": false,

  • "id": 2,

  • "title": "Learn Python"

  • },

  • {

  • "description": "",

  • "done": false,

  • "id": 3,

  • "title": "Read a book"

  • }

  • ]

  • }

  • 剩下的两个函数如下所示:

  • @app.route('/todo/api/v1.0/tasks/<int:task_id>', methods=['PUT'])def update_task(task_id):

  • task = filter(lambda t: t['id'] == task_id, tasks)

  • if len(task) == 0:

  • abort(404)

  • if not request.json:

  • abort(400)

  • if 'title' in request.json and type(request.json['title']) != unicode:

  • abort(400)

  • if 'description' in request.json and type(request.json['description']) is not unicode:

  • abort(400)

‘陆’ python处理的代码 怎么发布成restful接口

Web API文档工具列表 Swagger ——Swagger框架可以通过代码生成漂亮的在线API,甚至可以提供运行示例。支持Scala、Java、Javascript、Ruby、PHP甚至 Actionscript 3。在线 Demo 。 I/O Docs ——I/O Docs是一个用于RESTful Web APIs的交互式文档系统...

‘柒’ 如何用 flask 优雅的实现 restful api

最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了。

本文将会使用python的Flask框架轻松实现一个RESTful的服务。

REST的六个特性:

Client-Server:服务器端与客户端分离。

Stateless(无状态):每次客户端请求必需包含完整的信息,换句话说,每一次请求都是独立的。

Cacheable(可缓存):服务器端必需指定哪些请求是可以缓存的。

Layered System(分层结构):服务器端与客户端通讯必需标准化,服务器的变更并不会影响客户端。

Uniform Interface(统一接口):客户端与服务器端的通讯方法必需是统一的。

Code on demand(按需执行代码?):服务器端可以在上下文中执行代码或者脚本?

Servers can provide executable code or scripts for clients to execute in
their context. This constraint is the only one that is
optional.(没看明白)

RESTful web service的样子

REST架构就是为了HTTP协议设计的。RESTful web
services的核心概念是管理资源。资源是由URIs来表示,客户端使用HTTP当中的'POST, OPTIONS,
GET, PUT, DELETE'等方法发送请求到服务器,改变相应的资源状态。

‘捌’ python djangorestfulpost传入一个值,判断是否在数据列表中

1.列表和集合从集合接口继承。
2.列表功能:元素按顺序放置,元素可以重复。集合特征:元素未按顺序放置,元素不能重复(注意:虽然元素未按顺序放置,但元素在集合中的位置由元素的哈希代码确定,其位置实际上是固定的)。
3.list接口有三个实现类:LinkedList、ArrayList、vector,set接口有两个实现类:HashSet(底层由HashMap实现)和linkedhashset。

‘玖’ python写好的功能 怎么发布成restful接口

使用Node.js和npm安装CoffeeScript尽管有很多不借助Node来运行CoffeeScript代码的方法(附录2会谈到其中几种),然而我还是假定你在全书中用的是标准的coffee命令,专门运行在Node上的。但是只有在第6章才会明确需要使用Node和npm。请注意,使用Windows系统的用户,在继续之前你需要先安装Cygwin 。Cygwin基本上相当于一个Linux模拟器。虽然Node.js在0.6版本的蓝图中计划直接支持Windows,但是在写作本书之时,使用Cygwin是现有的最可靠的方法。Mac用户需要安装Xcode ,重点并不在于这个程序,而在于那些随它一起安装的命令行开发工具。尝试运行命令gcc(GNU编译器集合)来检测系统中是否已经安装了这些工具:

热点内容
gp数据库库 发布:2024-05-03 22:12:43 浏览:873
压缩点点 发布:2024-05-03 22:12:33 浏览:380
有哪些编程比赛 发布:2024-05-03 22:03:45 浏览:263
怎么根据配置调整游戏分辨率 发布:2024-05-03 22:02:50 浏览:77
小鸟酱265g资源密码多少啊 发布:2024-05-03 21:32:08 浏览:653
三国战纪游戏华为帐号密码是多少 发布:2024-05-03 21:22:54 浏览:950
变频压缩机启动 发布:2024-05-03 21:17:06 浏览:436
建立云存储 发布:2024-05-03 21:04:03 浏览:76
socket编程php 发布:2024-05-03 20:12:50 浏览:208
坦洲邮政局可以解压吗 发布:2024-05-03 20:09:55 浏览:733