我目前正在与kedro, version 0.15.4一起使用pipenv, version 2018.11.26。
目前,如果要使用Pipenv,我必须执行以下操作(对于本例,我希望该项目驻留在kedro-pipenv目录中):
mkdir kedro-pipenv && cd kedro-pipenv virtualenv“绑定”到项目目录,这实际上意味着它的名称是基于目录名的,此时pipenv install kedro或pipenv shell命令是executed.Pipenv没有支持自定义virtualenv names.的功能。
pipenv install kedro kedro-pipenv-AB9IGRnB的virtualenv,它驻留在以下位置~/.local/share/virtualenvs/kedro-pipenv-AB9IGRnB/中
pipenv shellkedro info kedro已成功安装在由Pipenv处理的virualenv中。
cd .. & kedro new kedro-pipenv作为项目的目录名。考虑到该目录在步骤1之前已经创建,这将失败,这是预期的,我得到以下message:
cookiecutter.exceptions.OutputDirExistsException:
Error: "/Users/xyz/projects/kedro-pipenv" directory already exists
Run with --verbose to see the full exception
Error: Failed to generate project.为了“解决”这个问题,我在与以前相同的virtualenv中执行以下操作:
mv kedro-pipenv kedro-pipenv_tmp
kedro new kedro-pipenv作为project.的目录名
mv kedro-pipenv_tmp/Pipfile* kedro-pipenv && rm -rf kedro-pipenv_tmp kedro依赖项是maintained.
cd kedro-pipenvkedro installkedro build-reqs用于管理项目requirements.我对conda也很熟悉,目前它似乎是处理Kedro环境的一种更干净的方法。
但是,在我的大多数其他项目中,我一直将pyenv与Pipenv结合使用来进行环境和依赖关系管理。这允许我通过在我的每个项目的根目录中有一个Pipfile来将环境信息绑定到特定的项目空间。
有没有人对如何改进上述工作流程有任何建议?
发布于 2019-12-03 14:12:09
如果您需要Pipenv环境根指向Kedro项目根,那么您的解决方案可能是当前情况下的最佳解决方案。如果您可以使用具有不同名称的Pipenv环境根目录和Kedro项目目录,则可以执行以下操作:
mkdir kedro-pipenv && cd kedro-pipenv
pipenv install kedro
pipenv run kedro new # create Kedro project inside 'kedro-pipenv'
cd <project-dir>
pipenv run kedro run # still works even in nested directory 正如您已经指出的,使用conda确实更容易,因为它的环境不绑定到任何特定的目录,与pipenv不同。
希望这有帮助!
https://stackoverflow.com/questions/59037182
复制相似问题