pipenv用着还是不错的,就是经常安装一些包老是解决不了依赖问题,比如最近我用到一个dogpile.cache,使用pipenv install dogpile.cache==0.7.1
来安装就报错。
我看报错信息大概是无法创建依赖关系,但是通过pipenv graph
却可以看到包有了,dogpile.cache
依赖于decorator
的关系图也有了,Pipfile
文件也被写入了包的内容,但是Pipfile.lock
是没有创建依赖的。
这导致我每次再安装其它包,它又要去更新一遍Pipfile.lock
,因为dogpile.cache
无法创建依赖,所以你每安装一次新的包它都要报错。
pipenv graph
好像和Pipfile.lock
关系不大,Pipfile.lock
文件没有依赖关系依然可以从pipenv graph
看出依赖图来,当然你可以无视报错继续使用dogpile.cache
的信息从Pipfile
中删除,这样报错没有了,但是这不是好的解决方案吧,Pipfile
文件就是维护包信息,一个还好,缺的多我还要手动处理--skip-lock
命令在安装时跳过依赖的,我是这样用的pipenv install --skip-lock dogpile.cache==0.7.1
,但是这个命令根本不管用,还是在安装完成包后,执行了Installing dependencies from Pipfile
,下面是报错内容:(flask_starlight) liuzhi@localhost ~/PycharmProjects/flask_starlight master ● pipenv install --skip-lock dogpile.cache==0.7.1
Installing dogpile.cache==0.7.1…
Adding dogpile.cache to Pipfile's [packages]…
✔ Installation Succeeded
Installing dependencies from Pipfile…
An error occurred while installing dogpile-cache==0.7.1! Will try again.
? ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 9/9 — 00:00:01
Installing initially failed dependencies…
[pipenv.exceptions.InstallError]: File "/Users/liuzhi/anaconda3/lib/python3.6/site-packages/pipenv/core.py", line 1992, in do_install
[pipenv.exceptions.InstallError]: skip_lock=skip_lock,
[pipenv.exceptions.InstallError]: File "/Users/liuzhi/anaconda3/lib/python3.6/site-packages/pipenv/core.py", line 1253, in do_init
[pipenv.exceptions.InstallError]: pypi_mirror=pypi_mirror,
[pipenv.exceptions.InstallError]: File "/Users/liuzhi/anaconda3/lib/python3.6/site-packages/pipenv/core.py", line 859, in do_install_dependencies
[pipenv.exceptions.InstallError]: retry_list, procs, failed_deps_queue, requirements_dir, **install_kwargs
[pipenv.exceptions.InstallError]: File "/Users/liuzhi/anaconda3/lib/python3.6/site-packages/pipenv/core.py", line 763, in batch_install
[pipenv.exceptions.InstallError]: _cleanup_procs(procs, not blocking, failed_deps_queue, retry=retry)
[pipenv.exceptions.InstallError]: File "/Users/liuzhi/anaconda3/lib/python3.6/site-packages/pipenv/core.py", line 681, in _cleanup_procs
[pipenv.exceptions.InstallError]: raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: ['Collecting dogpile-cache==0.7.1']
[pipenv.exceptions.InstallError]: ['Could not find a version that satisfies the requirement dogpile-cache==0.7.1 (from versions: )', 'No matching distribution found for dogpile-cache==0.7.1']
ERROR: ERROR: Package installation failed...
☤ ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/1 — 00:00:01
这不就玩脱了吗,是我官方跳过依赖的命令使用错误吗?还是理解上不是这样的效果?目前我有两个选择,修改Pipfile
,或者无视错误,不知道各位大佬是怎么使用pipenv的,因为无法解决依赖的包我遇到的太多了
森栏
慕的地6264312
相关分类