kedro install 安装失败,但几次尝试后就成功了

Kedro install fail to install, but few attempt later it is successful

我必须测试我的 kedro 项目是否可以从 github 运行,所以我创建了一个新环境,然后:

git clone <my_project>
pip install kedro kedro[pandas] kedro-viz jupyter
kedro build-reqs
kedro install

安装失败,然后我重试几次(有时 2 或 3 次)然后下一次尝试成功

编辑: python -V : Python 3.7.10 kedro --version : kedro, 版本 0.17.3

我不能 post 我的 requirement.txt (post 主要是代码)所以这是我的 requirement.in

black==v19.10b0
flake8>=3.7.9, <4.0
ipython==7.10
isort>=4.3.21, <5.0
jupyter~=1.0
jupyter_client>=5.1, <7.0
jupyterlab==0.31.1
kedro==0.17.3
nbstripout==0.3.3
pytest-cov~=2.5
pytest-mock>=1.7.1, <2.0
pytest~=6.1.2
wheel==0.32.2
spacy>=3.0.0,<4.0.0
scikit-learn == 0.24.2
kedro-viz==3.11.0
wordcloud== 1.8.1
https://github.com/explosion/spacy-models/releases/download/fr_core_news_sm-3.0.0/fr_core_news_sm-3.0.0.tar.gz#egg=fr_core_news_sm

如评论中所述,我认为有两个问题在起作用。

1。解码错误

这是您遇到的主要异常,即:

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xe8 in position 69: invalid continuation byte

这是在 Kedro 本身处理来自 pip install 的错误时意外引发的(参见 this line of Kedro's source code). I believe the cause might be that you have accented characters in your working directory, which can't be interpreted by Python's standard decode() (see this)。示例:

b'accélération'.decode()
>> SyntaxError: bytes can only contain ASCII literal characters.

解码错误掩盖了实际的 pip install 错误。

2。 pip install错误

正如您正确指出的那样,kedro install 在幕后使用了 pip install。在没有看到实际错误的情况下查明确切原因有点困难。但是,我可以重现类似的问题,在我的情况下出现以下错误:

ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: 'c:\users\<mu-user>\anaconda3\<my-env>\kedro_project_tests\lib\site-packages\~ydantic\annotated_types.cp37-win_amd64.pyd'
Consider using the `--user` option or check the permissions.

我认为这是由不同版本的 Kedro 和 Kedro-Viz 之间的交互造成的。在 之前 pip installing kedro-viz 根本没有 kedro install 为我修复它。


注意:与此相关,通过pip 之前安装的Kedro版本做[=18=肯定会出错] 与 requirements.inrequirements.txt 中指定的 Kedro 版本不同。这是显而易见的,因为当前处理执行的包将被卸载。这种情况下的错误将是这样的:

ERROR: Could not install packages due to an OSError: [WinError 32] The process cannot access the file because it is being used by another process: 'c:\users\<my-user>\anaconda3\envs\<my-env>\scripts\kedro.exe