brip 代表 Brython 的点。它将 Python 包索引 (PyPI) 生态系统和类似 pip 的工作流程带入了 Brython 支持的项目。
项目描述
brip - Brython 软件包安装程序
brip代表Brython的点数。它将 Python 包生态系统和类似 pip 的工作流程带入了 Brython 支持的项目。
您可以使用brip将PyPI和其他索引中的包安装到不同的 Brython 项目中。
问题陈述
- 从历史上看,大多数面向 brython 的Python 包都被预编译成 - 并作为 - 一个 javascript 文件分发。这适用于那些自包含的 Python 包,但是当/如果 Python 包有自己的依赖项时,没有明显的方法来声明和管理这些依赖项。
- 一般来说,没有 Pythonic 方法可以直接从 PyPI 安装通用 Python包及其依赖项到您的 Brython 项目中。
brip旨在将 PyPI 生态系统和熟悉的类似 pip 的工作流程引入 Brython 支持的项目。
快速入门:一个完整的示例项目
有一个完整的示例项目Easter来演示如何使用brip.
安装
跑吧pip install brip。
建议您安装brip到一个中央虚拟环境中,
而不是安装brip在每个 brython 项目的环境中。(事实上,您的 Brython 项目在技术上不需要自己的虚拟环境。)
在 Linux 和 macOS 上安装:
python3 -m venv ~/venv_central
source ~/venv_central/bin/activate
pip install brip
在 Windows 上安装:
py -m venv $HOME\venv_central
$HOME\venv_central\Scripts\activate.bat
pip install brip
手册:命令行使用
本手册假定您使用 Linux 或 macOS。Windows 用户请调整每个示例中的路径分隔符。
-
将PyPI中的包安装到 Brython 项目的 Web 根目录(即包含您的
index.html.cd my_brython_project_one/website brip install SomePackage现在
site-packages.brython.js在当前目录中生成一个新的,包含 SomePackage及其依赖项。你的 Brython 项目index.html只需要添加一行<script src="site-packages.brython.js"></script>,从现在开始你就可以import some_package在你的 Brython 项目中使用了!安装的包
brip是直接从 PyPI 获取的。您不需要先安装软件包pip。 -
列出为当前 Brython 项目安装的软件包(或者更准确地说,列出包含在 中的软件包
site-packages.brython.js):cd my_brython_project_one/website brip list注意: 安装的软件包对
brip是不可见的pip list,反之亦然。因为它们的安装目标完全不同。 -
将PyPI中的几个包安装到您的 Brython 项目的 Web 根目录(即包含您的
index.html.cd my_brython_project_two/website brip install -r brequirements.txt文件 " b requirements.txt" 的格式与
pip"requirements.txt"相同,可以任意命名。不过,我们建议使用不同于pip 的传统“requirements.txt”的名称,例如“ b requirements.txt”,以提醒您其内容是由 安装的brip,而不是由安装的pip。 -
不直接支持卸载包...,但可以通过在“ b requirements.txt”文件中组织您的完整依赖项列表来实现,然后使用此模式:
cd my_brython_project_two/website # Use your editor to remove one package name edit brequirements.txt # Each install will OVERWRITE existing site-packages.brython.js brip install -r brequirements.txt
差异pip
在pip你可以做增量安装。如果你运行pip install fooand then pip install bar,你最终会同时安装foo和bar安装。
但是,由于某些技术原因,brip请始终进行覆盖安装。如果你运行brip install fooand then brip install bar,你最终将只bar在你的 Brython 项目中可用。
因此,我们建议您始终使用“ b requirements.txt”来组织项目的完整依赖项。这样,对此类文件的任何调整都将通过 next 刷新到您的 Brython 项目brip install -r brequirements.txt。
brip也只实现了pip. 请参考命令行帮助brip -h等brip install -h。
限制
brip旨在将整个 Python 包索引 (PyPI) 生态系统引入 Brython。但是,实际上存在一些超出控制范围的限制brip。
-
Brython 驱动的应用程序在浏览器中运行。浏览器本身就是一个功能强大的虚拟机。但是,许多 Python 包预计不会在浏览器中运行。例如,文件系统在 Brython 中的行为有所不同:无法写入,读取仅限于 Ajax 请求可访问的文件夹。
-
Brython 本身只支持纯 Python 包。这不包括部分用 C 语言编写的包,例如
numpy. 因此,只有那些用纯 Python 编写的包 及其整个用纯 Python 编写的依赖链才能在 Brython 中运行。 -
有时,由于Brython 和 CPython 之间的一些细微差别,即使是纯 Python 包也可能无法在 Brython 中 运行。
-
不幸的是,目前没有直接的方法可以知道 Python 包是否可以在 Brython 中运行。您可能不得不依靠反复试验。只需用于
brip安装一个包,在 Brython 环境中使用它,然后查看浏览器控制台是否记录任何错误。
随意将这些包报告到
brip 的问题列表中。
brip可能无法直接解决它,但社区可能会提供帮助。
Brython 友好软件包维护者的秘诀
虽然我们在问题陈述中提到brip主要是为了让 Brython 应用程序开发人员从 PyPI 中提取通用 Python 包而开发的,例如:
# Inside the brequirements.txt, it contains the following line
charts.css.py>=0.4,<1
将独立的、对 Brython 友好的包作为 javascript 文件分发并没有错,例如:
<!-- Inside the index.html, it contains the following line -->
<script src='https://github.com/rayluo/charts.css.py/releases/download/0.4.0/charts.css.py-brython.js'></script>
在这里,术语“Brython 友好”被定义为可以发布到 PyPI 的通用、纯 Python 包,但它也被设计为能够在 Brython 中工作。
那么,你——一个对 Brython 友好的包的维护者——如何生成那个 javascript 文件呢?
以下是我如何将我的包裹打包
charts.css.py
成一个charts.css.py-brython.js:
cd charts.css.py
brip install .
# Now a site-packages.brython.js is generated in current directory,
# containing the PyPI-ready project in current directory.
# I just need to rename it to charts.css.py-brython.js and distribute it.
这样做时,您可能会在控制台上看到一条警告消息:
DEPRECATION: A future pip version will change local packages to be built in-place without first copying to a temporary directory. We recommend you use --use-feature=in-tree-build to test your packages with this new behavior before it becomes the default.
pip 21.3 will remove support for this functionality. You can find discussion regarding this at https://github.com/pypa/pip/issues/7555.
您可以忽略该消息。它对您的 javascript 结果没有负面影响。
python -m pip install --upgrade pip一旦 pip 21.3 可用并且您升级到它(通过运行),该警告消息预计将消失。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。