首页 > 解决方案 > 在 Windows 系统下安装超集时出错

问题描述

我想在我的 Windows 10 中安装 python 模块 - 超集,但是,一些错误阻止我进一步安装。

在我输入“pip install superset”后,下面是在 cmd 中执行的 3 个错误:

  1. python-geohash 的构建轮子失败

  2. flask-appbuilder 1.11.1 需要 Flask-SQLAlchemy==2.1,但您将拥有不兼容的 flask-sqlalchemy 2.3.2。

  3. 命令“c:\pythonvir\env\scripts\python.exe -u -c”导入setuptools,tokenize;file ='C:\Users\Lawrence\AppData\Local\Temp\pip-install-1lqhahdp\python-geohash\setup.py';f=getattr(tokenize, 'open', open)( file );code=f .read().replace('\r\n', '\n');f.close();exec(compile(code, file , 'exec'))" install --record C:\Users\Lawrence \AppData\Local\Temp\pip-record-f4lpe14x\install-record.txt --single-version-externally-managed --compile --install-headers c:\pythonvir\env\include\site\python3.6\ python-geohash" 失败,错误代码 1 在 C:\Users\Lawrence\AppData\Local\Temp\pip-install-1lqhahdp\python-geohash\

有什么想法吗?我尝试安装 VS2015 和 VS2017 和 sasl,但仍然有错误消息.. 谢谢劳伦斯

标签: python-3.xsuperset

解决方案



设置 Superset 0.28.1(当前 pip 映像),适用于 Windows 的说明

  • 按照文档中的说明操作,直到“pip install superset”之前
    • 这包括全局的“pip install cryptography”。

在项目文件夹中打开命令提示符:

:: Drop some lib versions (this is required specifically for 0.28.1 on Windows,
:: doesn't apply on current master):
pip install Pandas==0.23.4
pip install SQLAlchemy==1.2.18
:: jwt started getting specific about the flask version from 3.21.0..
pip install flask-jwt-extended==3.20.0

:: Add current folder to those searched by python for modules:
set PYTHONPATH=%cd%

python wenv\Scripts\superset db upgrade
set FLASK_APP=superset
flask fab create-admin
python wenv\Scripts\superset load_examples
python wenv\Scripts\superset init

:: Start flask devserver:
python wenv\Scripts\superset run -p 8005 --with-threads --reload --debugger

在 Windows 上通过 git 克隆设置 Superset (2019-08-11)

如果从源设置 Superset 0.34rc1(使用命令提示符)(主要取自 RELEASING/Dockerfile.from_tarball,为 windows 修改了一些东西)

git clone <superset repo>

在 repo 文件夹中打开 shell,然后安装并激活虚拟环境:

python -m venv wenv
:: To activate in powershell: . .\wenv\Scripts\activate
wenv\Scripts\activate

需要安装node来构建静态,只需安装python包'nodeenv':

pip install nodeenv

Nodeenv 类似于 virtualenv,但用于管理节点。

接下来使用 nodeenv 制作节点虚拟环境,将其放置在 nodeenv 目录中:

nodeenv nodeenv

激活节点虚拟环境:

:: unlike virtualenv, nodeenv does not provide a script for activating
:: within git bash shell on windows, so we have to use command prompt
:: and convert a few commands to windows equivalents.
:: https://github.com/ekalinin/nodeenv/issues/226
:: To activate in powershell: . .\nodeenv\Scripts\Activate.ps1
nodeenv\Scripts\activate
cd superset\assets
npm ci

全局安装 webpack:

npm install -g webpack webpack-cli

设置 NODE_ENV 并运行 webpack:

set NODE_ENV=production
:: Note that webpack build requires min 2048 GB of RAM,
:: and spawns many child node.js instances, each of which
:: also require copious resources. If it doesn't have enough
:: resources, the build will of course fail.
webpack --mode=production --colors --progress

一段时间后,构建应该完成并且文件应该放在 superset/assets/dist 中。

:: Remove node_modules dir as it's no longer needed:
rmdir /q /a node_modules

:: cd back to project root
cd ..\..

:: On Windows, it appears nodeenv replaces virtualenv settings,
:: it doesn't work concurrently, so open a new shell and re-activate 
:: python env.
wenv\Scripts\activate

:: Just in case install latest pip etc.
python -m pip install --upgrade pip setuptools wheel

:: Install project python packages
::                                         v - leave out the r, you must not.
python -m pip install -r requirements.txt -r requirements-dev.txt

:: install pyodbc, if planning to connect to ms sql
pip install pyodbc

:: superset/static/assets is supposed to symlink to ../assets.
:: So we need to make a *windows symlink* or adjust setup.py..

:: Windows symlink method:
:: Open cmd.exe in admin mode or enable windows Settings / 
:: Update and Security / For developers.

:: in superset/static, rename 'assets' file.
rename assets assets_linux
:: make windows symlink
mklink assets ..\assets

:: Or modify setup.py and remove "static" from PACKAGE_DIR:
:: PACKAGE_DIR = os.path.join(BASE_DIR, "superset", "assets")

:: Finally, install superset in editable mode
pip install -e .

:: compile language files (gettext .po files)
fabmanager babel-compile --target superset/translations

set PATH=%cd%\superset\bin;%PATH%
IF DEFINED PYTHONPATH (set PYTHONPATH=%cd%\superset;%PYTHONPATH%) ELSE (set PYTHONPATH=%cd%\superset)

从这里我们大致遵循 RELEASING\from_tarball_entrypoint.sh:

:: If symlink was not created for /static/assets earlier:
:: Adjust superset/config.py, line 52 so it doesn't look in the 'static' folder anymore
:: This can also be adjusted by creating a superset_config.py file that overrides config.py..
:: PACKAGE_DIR = os.path.join(BASE_DIR, "assets")

python wenv\Scripts\superset db upgrade

set FLASK_APP=superset
flask fab create-admin
python wenv\Scripts\superset load_examples
python wenv\Scripts\superset init

启动烧瓶开发服务器:

:: if superset/static/assets symlink was create, static files will be correctly served..

python wenv\Scripts\superset run -p 8005 --with-threads --reload --debugger

从 git clone 为 Ubuntu Linux 18.04 设置最新的 Superset (2019-08-11)

  • 按照文档中的说明操作,直到“pip install superset”之前
  • 包括所需的系统包和密码学。

    git clone <superset repo>
    

在 repo 文件夹中打开 shell,然后安装并激活虚拟环境:

使用符号链接为 python 3.6+ 更正 python 二进制文件

python3 -m venv lenv
source lenv/bin/activate

需要安装node来构建静态,只需安装python包'nodeenv':

pip install nodeenv

Nodeenv 类似于 virtualenv,但用于管理节点。

接下来使用 nodeenv 制作节点虚拟环境,将其放置在 nodeenv 目录中:

nodeenv lnenv

激活节点虚拟环境:

source lnenv/bin/activate
cd superset/assets
npm ci

全局安装 webpack(在这种情况下全局安装意味着它将进入 nodeenv 的虚拟文件夹):

npm install -g webpack webpack-cli
npm run build

最后,构建应该完成,文件应该放在 superset/assets/dist 中。

# Remove node_modules dir as it's no longer needed:
rm -rf node_modules

# cd back to project root
cd ../..

# Just in case install latest pip etc.
# Use python -m pip to avoid a possible issue where some packages
# attempt to write to global python repo..
python -m pip install --upgrade pip setuptools wheel

# Install project python packages
python -m pip install -r requirements.txt -r requirements-dev.txt

# Additionally install pyodbc, if one needs to connect to ms sql
pip install pyodbc

# Install superset in editable mode
pip install -e .

# Compile language files (gettext .po files)
fabmanager babel-compile --target superset/translations

# Append to PYTHONPATH if it already exists.
export PATH=$(pwd):$PATH
if [ -z "$PYTHONPATH" ]
then
    export PYTHONPATH=$(pwd):$PYTHONPATH
else
    export PYTHONPATH=$(pwd)
fi 
# Can also adjust SUPERSET_HOME to store default sqlite db in a different place.
# export SUPERSET_HOME=$(pwd)/superset_home
export MAPBOX_API_KEY=your_mapbox_key...

从这里我们大致遵循 RELEASES\from_tarball_entrypoint.sh:

superset db upgrade

export FLASK_APP=superset
flask fab create-admin
superset load_examples
superset init

启动烧瓶开发服务器:

superset run -p 8005 --with-threads --reload --debugger

推荐阅读