【问题标题】:Are there risks / pitfalls with using ln -s to link a virtualenv into a local venv within a project directory structure?使用 ln -s 将 virtualenv 链接到项目目录结构中的本地 venv 是否存在风险/陷阱?
【发布时间】:2019-07-18 21:02:08
【问题描述】:

我的所有虚拟环境都在 ~/.virtualevs 中。我正在处理一个希望将 [PROJECT_HOME]/venv 用作虚拟环境的 python/flask 项目。

如果我使用 ln -s ~/.virtualenvs/my_env [PROJECT_HOME]/venv,我是否会面临破坏和意外结果的风险?还是会按预期工作?

我已经设置好了,它可以工作了。目前。但感觉很“笨拙”

【问题讨论】:

    标签: python unix virtualenv ln


    【解决方案1】:

    ln -s 创建一个软链接(或符号链接),把它想象成Windows上的快捷方式,所以它和你在目标目录本身。

    创建符号链接后,当有人访问[PROJECT_HOME]/venv 链接时,他们将访问~/.virtualenvs/my_env 目录(显然由内核完成)。所以所有的操作都将在目标目录(~/.virtualenvs/my_env)上发生,你可以想象。

    还可以查看man ln 以了解有关链接的更多信息。


    但是使用符号链接会破坏导入,因为 Python 不会检查符号链接。因此,除非您已正确设置 PYTHONPATHsys.path 以包含符号链接目录,否则就导入机制而言,事情会中断。

    但是因为它是一个 virtualenv 目录,我认为它是安全的。

    【讨论】:

    • 哦,谢谢。我对它们是什么以及它们的工作方式很满意。我只是担心,如果我将用于 Python 开发的活动环境设置为脱离符号链接环境,我最终可能会由于项目目录范围之外的相对链接和链接点而导致事情中断。这有意义吗?
    猜你喜欢
    • 1970-01-01
    • 2023-01-14
    • 1970-01-01
    • 2013-01-23
    • 2023-04-10
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多