anaconda Qt 与系统 Qt

anaconda Qt 与系统 Qt

anaconda python 框架其中包括它自己的 Qt 共享库。由于框架的性质,它必须首先出现在PATH环境变量中,因此它的 python 二进制文件优先于系统的二进制文件。

当有人想要将系统的 Qt 共享库用于与 python 无关的项目时,这会产生冲突。编译 Qt 项目时,它将使用qmakeanaconda 的二进制文件及其共享库。

qmake人们可以通过将其路径添加到变量来强制使用二进制文件PATH,但这不适用于共享库。我尝试更改LD_LIBRARY_PATH但它一直选择 anaconda 的。

我找到的“解决方案”:

  1. LD_预加载:通过将 Qt 共享库一一添加到 LD_PRELOAD 环境变量,强制使用 Qt 共享库的 .so 使用系统库。这最终变得乏味且耗时。
  2. 与蟒蛇搞乱:按照建议删除 anaconda 中与 Qt 相关的所有内容这里。如果你想用 python 开发 GUI 应用程序,这看起来太脏了,而且将来很容易出错。
  3. Anaconda Qt > 系统 Qt:使用anaconda Qt代替系统Qt。这似乎是错误的责任分配。我的 Qt 项目与 python 无关,不应该与我的 anaconda 安装耦合。它们应该彼此独立。
  4. 改变作案方式:我的所有 shell 都没有在PATH变量前面添加 anaconda 路径,而是有一个易于使用的脚本,可以在需要时在前面添加它,如建议的那样这里。问题是我习惯了让我的 python 二进制文件总是随时可用,并且当我在不知情的情况下使用系统的 python 二进制文件时很容易出错。
  5. 移动水蟒:暂时移动 anaconda 文件夹,以便在路径中找不到它。这是最快的一个,但在我使用完系统 Qt 库后,它太依赖我的记忆来修复所有问题。

Qt 并不是 anaconda 默认包含的唯一“非 python”软件包,因此任何先验的“真实”解决方案都可以应用于任何其他冲突的解决方案。

答案1

Simple 默认不激活 conda。修改 .bashrc 以仅在您希望激活 conda 时才激活它。这样你就可以将它与系统完全分离......至少这可以在 Linux 和 osx 上运行。对窗户一无所知。

相关内容