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 install
ing kedro-viz
根本没有 kedro install
为我修复它。
注意:与此相关,通过pip
之前安装的Kedro版本做[=18=肯定会出错] 与 requirements.in
或 requirements.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
我必须测试我的 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 install
ing kedro-viz
根本没有 kedro install
为我修复它。
注意:与此相关,通过pip
之前安装的Kedro版本做[=18=肯定会出错] 与 requirements.in
或 requirements.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