用于创建和与ZIM文件交互的pythonfacing API

libzim的Python项目详细描述


python libzim公司

^{}的Python绑定。在

这个库允许您通过Python与.zim文件交互。在

它只是在^ {< CD1>} C++库的顶部提供了一个浅的Python接口(由{A2}维护)。在

它主要由^{}使用。在

License: GPL v3

安装

# Install from PyPI: https://pypi.org/project/libzim/
pip3 install libzim

快速启动

读卡器API

^{pr2}$

编写eh3 API>

有关writer API的基本用法,请参见example。在


用户文档

安装:Ubuntu/Debian和macOS x86_64(推荐)

从PyPI安装pythonlibzim包。在

pip3 install libzim

x86_64linux和macOS控制盘自动包含libzim.(so|dylib)dylib和头文件,但其他平台可能需要手动安装libzim及其头文件。在

手动安装libzimdylib和头文件

如果您不在linux或macOS x86_64平台上,则必须手动安装libzim。在

或者通过在https://download.openzim.org/release/libzim获取预构建的二进制文件 或者compile ^{} from source。在

如果没有在标准目录中安装libzim,则必须设置LD_LIBRARY_PATH以允许python查找库:

如果LIBZIM_DIR:

exportLD_LIBRARY_PATH="${LIBZIM_DIR}/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"

设置:Docker(可选)

docker build . --tag openzim:python-libzim

# Run a custom script inside the container
docker run -it openzim:python-libzim ./some_example_script.py

# Or use the python repl interactively
docker run -it openzim:python-libzim
>>> import libzim

开发人员文档

这些说明适用于python-libzim源代码本身的开发人员。如果您只是库的用户,并且不打算更改其内部源代码,请按照上面的用户文档说明进行操作。

安装程序:Ubuntu/Debian

注意:确保首先安装了libzimdylib+头(见上文)。

apt install coreutils wget git ca-certificates \
        g++ pkg-config libtool automake autoconf make meson ninja-build \
        liblzma-dev zlib1g-dev libicu-dev libgumbo-dev libmagic-dev

pip3 install --upgrade pip pipenv

exportCFLAGS="-I${LIBZIM_DIR}/include"exportLDFLAGS="-L${LIBZIM_DIR}/lib/x86_64-linux-gnu"
git clone https://github.com/openzim/python-libzim
cd python-libzim
python setup.py build_ext
pipenv install --dev
pipenv run pip install -e .

设置:Docker

docker build . -f Dockerfile.dev --tag openzim:python-libzim-dev

docker run -it openzim:python-libzim-dev ./some_example_script.py

docker run -it openzim:python-libzim-dev
$ black . && flake8 . && pytest .
$ pipenv install --dev <newpackagehere>
$ python setup.py build_ext
$ python setup.py sdist bdist_wheel
$ python setup.py install
$ python -c "import libzim"

常见任务

运行Linters&Tests

# Autoformat code with black
black --exclude=setup.py .
# Lint and check for errors with flake8
flake8 --exclude=setup.py .
# Typecheck with mypy (optional)
mypy .
# Run tests
pytest .

在开发期间重建Cython扩展

rm libzim/libzim.cpp
rm -Rf build
rm -Rf *.so
python setup.py build_ext
python setup.py install

为PyPI

python setup.py build_ext
python setup.py sdist bdist_wheel

# upload to PyPI (caution: this is done automatically via Github Actions)
twine upload dist/*

在编译python-libzim

exportCFLAGS="-I${LIBZIM_DIR}/include"exportLDFLAGS="-L${LIBZIM_DIR}/lib/x86_64-linux-gnu"exportLD_LIBRARY_PATH="${LIBZIM_DIR}/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
python setup.py build_ext
python setup.py install

进一步阅读

相关项目

研究

调试

包装

许可证

GPLv3或更高版本,请参阅 LICENSE获取更多详细信息。在

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

推荐PyPI第三方库


热门话题
具有多用户OU和多访问CNs的java Spring LDAP身份验证   java分配的变量神秘地变为null   java比较两个表或文本文件,并用行号和列输出差异   java如何在同一构建目录中设置netbeans中的文件路径?   java如何在avro模式中定义byte[]和LocalDateTime?   java在多个活动和片段中使用相同的微调器。实施它的最佳方式是什么?   java使用OOPS扩展已编写的类   java如何在特定于文件的基础上禁用Eclipse中的编译器警告?   java将字符串转换为日期的格式不正确   Java文件从一台服务器复制到另一台服务器   java Jacksonal和JacksonApperasl的最新jar版本是什么?   java如何在使用selenium chrome web驱动程序时禁用chrome中的身份验证提示   java是什么。推荐人和推荐人。Eclipse工作区中的元数据以及它们是否应该在设备之间同步?   java我应该把sqlite db文件放在哪里,这样我的jar就可以访问它了?这对连接字符串有何影响?   java如何在选择单元格时设置JTable标题背景色   java Cassandra 2 Hector:复合行键上的范围切片查询返回空行   java方法注释继承   Python字节对象与java   java Android和从sqlite数据库加载listview