gpt4 book ai didi

python - 虚拟环境和嵌入 Python

转载 作者:太空狗 更新时间:2023-10-30 00:03:58 24 4
gpt4 key购买 nike

我很喜欢 Python 的 virtualenv ,这有助于维护单独的 Python 配置。我正在考虑将 Python 嵌入到 C++ 应用程序中,并且想知道嵌入式 Python 在虚拟环境方面的表现如何。

特别是,我很想知道是否可以根据某些用户定义的设置“选择”虚拟环境(例如,通过在配置文件中命名感兴趣的虚拟环境)。

最佳答案

virtualenv 文档包括 Using virtualenv without bin/python提示解释器已经运行后如何配置虚拟环境的部分。

为避免对 activate_this.py 脚本的路径进行硬编码,我使用了以下代码段:

def resolve_virtual_environment(override=None):
"""Fetch the virtual environment path in the
process' environment or use an override."""
path = os.getenv('VIRTUAL_ENV')
if override:
path = os.path.join(os.getcwd(), override)
return path

def activate_virtual_environment(environment_root):
"""Configures the virtual environment starting at ``environment_root``."""
activate_script = os.path.join(
environment_root, 'Scripts', 'activate_this.py')
execfile(activate_script, {'__file__': activate_script})

你可以像这样使用它:

if __name__ == '__main__':
# use first argument is provided.
override = None
if len(sys.argv) > 1:
override = sys.argv[1]
environment_root = resolve_virtual_environment(override)

您可以从配置文件或其他东西中获取 override 值,而不是从命令行参数中获取。

请注意,您仍然只能使用单个虚拟环境预处理。

注意:与使用虚拟环境中捆绑的解释器相比,您可以访问为您启动的解释器安装的包。例如,当使用全局安装的 Python 时,您将有权访问全局安装的包。

还要确保您使用的 Python 解释器的版本与您用于创建虚拟环境的任何版本相匹配,以确保标准库(复制到虚拟环境中)版本与 Python 解释器版本相匹配。

关于python - 虚拟环境和嵌入 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8998499/

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