我正试图优化我们的诗歌构建时间,方法是在构建结束时将venv的tar.gz存储在azure存储blob(S3(中,密钥通过执行poetry.lock
和pyproject.toml
的md5sum
生成(这很好(
因此,在另一个构建的开始,我会对这些文件进行散列,并尝试查找存储中是否存在该blob。如果是,请下载它并将其内容提取到项目的.venv/
目录中。
这在一开始运行得很好,但过了一段时间,我开始得到在尝试通过诗歌运行命令时抛出此错误的构建:(任何命令(
+ poetry run reorder-python-imports --diff-only <SOME_FILES>
FileNotFoundError
[Errno 2] No such file or directory
at /usr/local/lib/python3.8/os.py:591 in _execvpe
587│ argrest = (args,)
588│ env = environ
589│
590│ if path.dirname(file):
→ 591│ exec_func(file, *argrest)
592│ return
593│ saved_exc = None
594│ path_list = get_exec_path(env)
595│ if name != 'nt':
我已经确认,项目目录中没有.venv
文件夹,内容与从网络安装完全相同。
如果我只是在缓存的venv上运行poetry install
,它会说它没有更多的依赖项要安装,但它会抛出上面的错误。如果我删除venv并重新安装所有内容,命令会正常工作。
我对如何调试和解决这个问题没有更多的想法。非常感谢您的帮助!:(
好吧,我想我已经明白了虚拟机有一些硬编码的路径,不容易移动。
对于这篇文章中所说的,我可以移动虚拟人吗?我们不应该把移动venv作为一种好的做法。
这就是我加快建设的方式。。。