2

我必须测试我的 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

我不能发布我的requirement.txt(帖子主要是代码)所以这是我的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
4

1 回答 1

1

正如评论中所指出的,我认为有两个问题在起作用。

1.解码错误

这是你得到的主要例外,即:

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

这在 Kedro 本身处理错误时意外引发pip install(请参阅这行 Kedro 的源代码)。我相信原因可能是您的工作目录中有重音字符,Python 的标准无法解释这些字符decode()(请参阅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 install不要ing 。kedro-viz kedro install


注意:与此相关,如果pip 之前通过安装的Kedro版本与或kedro install中指定的Kedro版本不一样,肯定会报错。这很明显,因为当前处理执行的包将被卸载。这种情况下的错误将是这样的:requirements.inrequirements.txt

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
于 2021-06-17T14:43:22.453 回答