【问题标题】:how to isolate virtualenv from local dist-packages?如何将 virtualenv 与本地 dist 包隔离?
【发布时间】:2023-03-16 21:07:01
【问题描述】:

如何使用 '/usr/local/lib/python2.7/dist-packages' 停止 virtualenv?

目前在我运行时它

virtualenv --no-site-packages ENV

它仍然使用我希望停止的 dist 包

编辑:/usr/local/lib/python2.7/dist-packages 位于 PYTHONPATH 中,它需要用于其他应用程序

【问题讨论】:

  • virtualenv --no-site-packages 创建一个空的 virtualenv。您确定通过pip freeze 检查已安装包列表时激活了正确的virtualenv。
  • 是的,我确定它是正确的环境,可能与 PYTHONPATH 有关吗?
  • --no-site-packages 标志在最近的virtualenv 版本中被相反的--system-site-packages flag 弃用。

标签: python virtualenv


【解决方案1】:

您的编辑解释了您观察到的行为。

激活virtualenv时需要取消设置PYTHONPATH

unset PYTHONPATH
source /path/to/virtualenv/bin/activate

virtualenv --no-site-packages ENV 可以很好地创建一个空的 virtualenv,但是您的 PYTHONPATH 导出会使您的空 virtualenv 无效。

为了使事情更简单,您可以编辑activate 脚本并在其中添加unset PYTHONPATH 命令。如果您想在停用 virtualenv 后恢复原始 PYTHONPATH,您还需要修改该文件中的 deactivate 函数。

【讨论】:

  • 因此,如果我取消设置 pythonpath,我认为这将影响的不仅仅是环境?是否可以取消设置然后重置?
  • 环境变量绑定到shell。 unset PYTHONPATH 只会修改当前运行的 shell 的环境变量。如果您不想修改当前 shell,只需在当前 shell 中启动另一个 shell。
  • 谢谢它的工作,有没有自动的方法来解决它?是 virtualenv 的问题吗?
猜你喜欢
  • 1970-01-01
  • 2012-10-22
  • 2017-01-15
  • 2016-06-20
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2012-07-13
  • 2013-10-13
相关资源
最近更新 更多