gpt4 book ai didi

python-3.x - pyvenv.cfg 中的 Venv 主页键

转载 作者:行者123 更新时间:2023-12-03 16:28:51 28 4
gpt4 key购买 nike

出于持续集成的目的,我使用了以下内置的 py3.6 venv 命令(不要与 virtualenv 混淆)(参见 pep 405)。

python -m venv --system-site-packages --without-pip <ENVNAME>

我发现它工作得很好,我立即获得了一个环境。

但是,.... venv 会生成一个 pyvenv.cfg 文件,如下所示:
home = absolute/path/to/prefix/of/interpreter/which/ran/venv
include-system-site-packages = true
version = <interpreter python version>

这个文件包含非常重要的home键,它指的是创建这个venv的原始基础python。很重要的说一个 无效 主页键 崩溃 python 进程在基本解释器中找不到它的库。

现在我想将这个“经过测试的绿色”venv + 其基础 python 部署到生产机器上。 我不想重建它在生产系统上,但只是将其复制到那里。

不用说,在 CI 工具上创建的 home 绝对路径在生产机器上无效,所以我需要编辑 pyvenv.cfg 文件 home 键,一切都像魅力一样工作。

这种文件操作是我真正想避免的步骤,因为我想生成一个只需要复制、激活和调用(标准方式)的工件。

我试图将 %xyz%、$xyz 甚至 configParser %(xyz)s 放在原始文件上,但这些都没有解决。
我还尝试在那里使用相对路径,但该路径是相对于工作目录的,我不想强​​制生产系统从固定工作目录调用我的工件。

除了丑陋的 pyvenv.cfg 操作之外,还有其他解决方案吗?

最佳答案

根据 Creation of virtual environments 中的规范您不需要激活 venv。

You don’t specifically need to activate an environment; activation just prepends the virtual environment’s binary directory to your path, so that “python” invokes the virtual environment’s Python interpreter and you can run installed scripts without having to use their full path. However, all scripts installed in a virtual environment should be runnable without activating it, and run with the virtual environment’s Python automatically.


Linux 示例:
export PYTHONPATH=venv/lib/python3.8/site-packages
/usr/bin/python3.8 -m mypackage
微软视窗示例:
export PYTHONPATH=venv/Lib/site-packages
c:/programs/python3.8/python.exe -m mypackage

关于python-3.x - pyvenv.cfg 中的 Venv 主页键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51989490/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com