带有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如何在构造函数外部添加鼠标侦听器   java如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局