带有node.js类模块系统的python。

nodepy-runtime的Python项目详细描述


node.py

py是一个与cpython 2.7和3.3-3.6兼容的python运行时。 它为模块提供了一个独立但优越的导入机制, python应用程序的依赖性管理和易部署性 对于其他语言,没有virtualenvs

Node.py is inspired by Node.js.

nppm是node.py的包管理器,允许您安装和管理 标准python包(在hood下使用pip)以及作为node.py 没有虚拟环境的朦胧的包。nppm是一个强大的 用于部署node.py应用程序和命令行工具的工具。你可以找到 nppm存储库here

用法示例

py允许您使用module编写非常模块化的python应用程序 导入更容易跟踪的语义。它也没有 与标准python一样,独立的__main__模块的概念。任何有效的 python脚本是一个有效的node.py脚本。

$ ls
app.py models.py nodepy.json
$ head app.py
import flask
import * from './models'  # Node.py special syntax
require('werkzeug-reloader-patch').install()  # Node.py require() function
app = flask.Flask('myapp')
# ...
$ cat nodepy.json
{
  "name": "myapp",
  "pip_dependencies": {
    "Flask": ">=1.0.2",
    "pony": ">=0.7.3"
  },
  "dependencies": {
    "werkzeug-reloader-patch": "^0.0.7"
  }
}
$ nppm install
$ nodepy app
... Starting Flask server at localhost:8000

安装

node.py可以从pypi获得nodepy-runtime。python版本 将其安装到的python版本也将用于 node.py代码。

Tip: Add the --user flag if you don't want to install Node.py system-wide.

$ pip install nodepy-runtime

有多种方法可以安装nppm。建议的方法是 使用远程安装脚本。如果要安装特定版本, 将git ref作为参数传递(例如developv2.0.2)。如果你不知道 指定一个标记,将安装标记最高的版本。

$ nodepy https://nodepy.org/get-nppm.py

或者,可以克隆存储库并使用本地安装脚本。

$ git clone https://github.com/nodepy/nppm.git
$ nodepy nppm/scripts/install.py

Important: The installer is not able to automatically detect whether Node.py was installed system-wide or with the --user option. If you installed Node.py with the --user option, pass the --global option to the install-script (global meaning user-location). The default is to install with --root (system-wide).

更改

v2.1.5(2018-08-18)

  • 添加Request.copy()方法

v2.1.4(2018-08-13)

  • 处理相关包链接(实际上已经在2.1.3中)

v2.1.3(2018-08-13)

  • ^ ^ },不再替换现有后缀 当试图添加.py后缀时

v2.1.2(2018-06-15)

  • 修复MANIFEST.in,现在包括requirements.txt(由setup.py所需)

v2.1.1(2018-06-14)

  • v2.1.0的发布日期修补程序

v2.1.0(2018-06-14)

  • README.md
  • 中将nodepy-pm重命名为nppm
  • 将mit许可证添加到所有源文件的头中

v2.0.3(2018-06-03)

  • nodepy.base.Module()构造函数现在只接受绝对文件名
  • 更新setup.py以包含标记long_description并读取install 来自requirements.txt
  • 的要求

v2.0.2(2018-03-30)

  • 本地.nodepy/pip目录现在总是通过使用 使用EntryModule.run_with_exec_handler()方法而不是加载 直接执行模块
  • PythonLoader.load()如果路径已经是 在列表中

v2.0.1(2017-12-19)

  • PythonLoader._load_code()现在默认使用utf8编码,但是我们 应该尝试查看文件是否包含编码:comment
  • 总是将本地modules_directory添加到上下文解析路径,这有助于 使用包链接的项目
  • node.py repl现在还可以从.nodepy/pip目录导入
  • 修复包根以外的resolve_root
  • 不要从nodepy.utils.path导入pathlib,而是导入 pathlib2直接。我们决定不使用性病 可用,因为可能存在细微差异
  • 将缺少的strict=False添加到UrlPath.resolve()ZipPath.resolve()
  • nodepy.runtime.scripts添加信息,使其还可以保存args成员
  • resolve_root现在考虑默认值Package.main,如果是 未显式定义,当需要包入口点时添加resolve_root
  • StdResolver.package_for_directory()必须解析要消除的路径 pardir元素,否则我们可以得到两个指向 相同的目录,但其中一个目录包含subdir/..元素
  • 更新Module.name属性以生成所需的modu姓名 对于包外部的模块resolve_root
  • 修复了在Request.try_()中将requeststring与实际请求str进行比较的问题 正确提高tryresolveerror
  • 修复python 2的父调用FrameDebugger
  • 添加Config.sections(),删除Context.__init__()中的调试打印
  • 去掉nodepy.default_context,但添加nodepy.get_default_context()代替
  • 添加nodepy.utils.config模块并添加Context.config成员 从NODEPY_CONFIG文件或~/.nodepy/config
  • 初始化

v2.0.0(2018-11-24)

  • 完全重写
  • 抽象模块解析接口
  • 使用pathlib2模块抽象文件系统

版权所有©2018 Niklas Rosenstein

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java对ServiceListener和ServiceTracker调用提供了哪些排序保证?   java找不到方法格式的符号(DateTimeFormatter)?   mysql有没有一种方法可以将TCPDump输出到一个文件中,并用Java对其进行过滤,每5秒钟用新数据覆盖一次该文件?   java如何最好地配置用户上传支持文件的上传位置   java我在Android上使用OData4j,我无法获取实体   JPA实体关系简单示例中的java获取错误   JAVANoClassDefFoundError:安卓。应用程序。用法安卓中的UsageStatsManager   Eclipse中javaoo代码分析   java MethodVisitor抛出类格式错误   java为什么在从ViewModel调用时,改型排队不起作用?   调试小程序Java控制台:删除跟踪消息大小限制   java复杂安卓活动动画   java如何在使用JDOM2解析XML时忽略注释内容   java通过循环创建文本字段   即使在bufferedwriter关闭后也未发现java文件异常   单链表恢复中的java错误