安装

注意

如果您只是想试用 Datasette,无需安装任何东西:请参阅使用 Glitch 无需安装即可试用 Datasette

安装 Datasette 主要有两种选择。您可以将其直接安装到您的机器上,或者使用 Docker 安装。

如果您想通过安装一个允许您直接修改代码的副本,开始为 Datasette 项目做贡献,请查看我们的设置开发环境指南。

基本安装

适用于 Mac 的 Datasette Desktop

Datasette Desktop 是一个打包好的 Mac 应用程序,它将 Datasette 与 Python 捆绑在一起,允许您直接在笔记本电脑上安装和运行 Datasette。如果您不习惯使用命令行,这是本地安装的最佳选择。

使用 Homebrew

如果您使用 Mac 并使用 Homebrew,您可以在终端中运行此命令安装 Datasette

brew install datasette

这将安装最新版本。您可以通过运行以下命令进行确认

datasette --version

您可以使用以下命令升级到最新的 Homebrew 打包版本

brew upgrade datasette

安装 Datasette 后,您可以使用以下命令安装插件

datasette install datasette-vega

如果 Datasette 的最新打包版本尚未通过 Homebrew 提供,您可以使用以下命令原地升级您的 Homebrew 安装

datasette install -U datasette

使用 pip

Datasette 需要 Python 3.7 或更高版本。Python.org Python 新手入门页面提供了入门说明。

您可以使用 pip 安装 Datasette 及其依赖项

pip install datasette

现在您可以像这样运行 Datasette

datasette

高级安装选项

使用 pipx

pipx 是一个用于在隔离环境中安装 Python 软件及其所有依赖项的工具,以确保它们不会与任何其他已安装的 Python 软件冲突。

如果您在 macOS 上使用 Homebrew,您可以这样安装 pipx

brew install pipx
pipx ensurepath

不使用 Homebrew 的话,您可以这样安装

python3 -m pip install --user pipx
python3 -m pipx ensurepath

pipx ensurepath 命令配置您的 shell,以确保它可以找到由 pipx 安装的命令——通常是通过确保 ~/.local/bin 已添加到您的 PATH 中来实现。

安装 pipx 后,您可以使用它这样安装 Datasette

pipx install datasette

然后运行 datasette --version 以确认已成功安装。

使用 pipx 安装插件

您可以使用 pipx inject 安装其他 datasette 插件,如下所示

$ pipx inject datasette datasette-json-html
injected package datasette-json-html into venv datasette
done! ✨ 🌟 ✨

$ datasette plugins
[
    {
        "name": "datasette-json-html",
        "static": false,
        "templates": false,
        "version": "0.6"
    }
]

使用 pipx 升级软件包

您可以使用 pipx upgrade datasette 将您的 pipx 安装升级到 Datasette 的最新版本

$ pipx upgrade datasette
upgraded package datasette from 0.39 to 0.40 (location: /Users/simon/.local/pipx/venvs/datasette)

要在 pipx 环境中升级插件,请使用 pipx runpip datasette install -U name-of-plugin - 就像这样

% datasette plugins
[
    {
        "name": "datasette-vega",
        "static": true,
        "templates": false,
        "version": "0.6"
    }
]

$ pipx runpip datasette install -U datasette-vega
Collecting datasette-vega
Downloading datasette_vega-0.6.2-py3-none-any.whl (1.8 MB)
    |████████████████████████████████| 1.8 MB 2.0 MB/s
...
Installing collected packages: datasette-vega
Attempting uninstall: datasette-vega
    Found existing installation: datasette-vega 0.6
    Uninstalling datasette-vega-0.6:
    Successfully uninstalled datasette-vega-0.6
Successfully installed datasette-vega-0.6.2

$ datasette plugins
[
    {
        "name": "datasette-vega",
        "static": true,
        "templates": false,
        "version": "0.6.2"
    }
]

使用 Docker

包含 Datasette 最新版本的 Docker 镜像已发布到 Docker Hub:https://hub.docker.com/r/datasetteproject/datasette/

如果您的机器上安装了 Docker(例如在 OS X 上使用 Docker for Mac),您可以这样下载并运行此镜像

docker run -p 8001:8001 -v `pwd`:/mnt \
    datasetteproject/datasette \
    datasette -p 8001 -h 0.0.0.0 /mnt/fixtures.db

这将在您机器的 8001 端口启动一个 Datasette 实例,服务当前目录中的 fixtures.db 文件。

现在访问 http://127.0.0.1:8001/ 以访问 Datasette。

(您可以从 https://latest.datasette.io/fixtures.db 下载 fixtures.db 文件的副本)

要升级到 Datasette 的最新版本,请运行以下命令

docker pull datasetteproject/datasette

加载 SpatiaLite

datasetteproject/datasette 镜像包含 SQLite 的 SpatiaLite 扩展 的最新版本。要加载并启用该模块,请使用以下命令

docker run -p 8001:8001 -v `pwd`:/mnt \
    datasetteproject/datasette \
    datasette -p 8001 -h 0.0.0.0 /mnt/fixtures.db \
    --load-extension=spatialite

您可以通过访问 http://127.0.0.1:8001/-/versions 确认 SpatiaLite 已成功加载

安装插件

如果您想将插件安装到您的本地 Datasette Docker 镜像中,可以使用以下方法。这将安装插件,然后保存一个新的本地镜像,名为 datasette-with-plugins

docker run datasetteproject/datasette \
    pip install datasette-vega

docker commit $(docker ps -lq) datasette-with-plugins

现在您可以像这样运行新的自定义镜像

docker run -p 8001:8001 -v `pwd`:/mnt \
    datasette-with-plugins \
    datasette -p 8001 -h 0.0.0.0 /mnt/fixtures.db

您可以通过访问 http://127.0.0.1:8001/-/plugins 确认插件已安装

某些插件(例如 datasette-ripgrep)可能需要额外的系统软件包。您可以通过在容器内运行 apt-get install 来安装这些软件包

docker run datasette-057a0 bash -c '
    apt-get update &&
    apt-get install ripgrep &&
    pip install datasette-ripgrep'

docker commit $(docker ps -lq) datasette-with-ripgrep

关于扩展的说明

SQLite 支持扩展,例如用于地理空间操作的 SpatiaLite

可以使用 --load-extension 参数加载这些扩展,如下所示

datasette --load-extension=/usr/local/lib/mod_spatialite.dylib

某些 Python 安装不包含对 SQLite 扩展的支持。如果出现这种情况,当您尝试加载扩展时,您将看到以下错误

您的 Python 安装无法加载 SQLite 扩展。

在某些情况下,您可能会看到以下错误消息

AttributeError: 'sqlite3.Connection' object has no attribute 'enable_load_extension'

在 macOS 上,最简单的解决方法是使用 Homebrew 安装 Datasette

brew install datasette

使用 which datasette 确认 datasette 将运行该版本。输出应如下所示

/usr/local/opt/datasette/bin/datasette

如果您在此处看到不同的位置,例如 /Library/Frameworks/Python.framework/Versions/3.10/bin/datasette,您可以运行以下命令,让 datasette 转而执行 Homebrew 版本

alias datasette=$(echo $(brew --prefix datasette)/bin/datasette)

您可以使用以下命令撤销此操作

unalias datasette

如果您需要为其他 Python 代码运行支持扩展的 SQLite,您可以使用 Homebrew 安装 Python 本身来实现

brew install python

然后使用以下命令执行 Python

/usr/local/opt/python@3/libexec/bin/python

与此版本的 Python 一起工作的更方便的方式是使用它创建一个虚拟环境

/usr/local/opt/python@3/libexec/bin/python -m venv datasette-venv

然后像这样激活它

source datasette-venv/bin/activate

现在运行 pythonpip 将针对支持 SQLite 扩展的 Python 3 版本运行

pip install datasette
which datasette
datasette --version