python-3.x - 如何临时更改默认 python3 路径
问题描述
我正在运行meson build
,它需要安装许多 python3 库。在我的系统上,默认的 python3 安装当前指向
$ which python3
/home/myuser/anaconda3/bin/python3
该构建需要安装 python3-gi 包,该包已使用 synaptic 包管理器安装
apt-cache policy python3-gi
python3-gi:
Installed: 3.22.0-2
Candidate: 3.22.0-2
Version table:
*** 3.22.0-2 500
500 http://ftp.pl.debian.org/debian stretch/main amd64 Packages
100 /var/lib/dpkg/status
我不确定这个包是为哪个安装安装的,因为我还有其他 python3 安装:
$ whereis python3
python3: /usr/bin/python3.5m-config /usr/bin/python3.5 /usr/bin/python3.5-config /usr/bin/python3.5m /usr/bin/python3 /usr/lib/python3.5 /usr/lib/python3 /etc/python3.5 /etc/python3 /usr/local/lib/python3.5 /usr/include/python3.5 /usr/include/python3.5dm /usr/include/python3.5m /usr/share/python3 /home/myuser/anaconda3/bin/python3.7m /home/myuser/anaconda3/bin/python3.7m-config /home/myuser/anaconda3/bin/python3.7 /home/myuser/anaconda3/bin/python3.7-config /home/myuser/anaconda3/bin/python3 /usr/share/man/man1/python3.1.gz
我得到的介子错误如下:
Program python3 found: YES (/home/myuser/anaconda3/bin/python3)
meson.build:244:4: ERROR: Problem encountered: Error: missing dependency python gobject introspection (python3-gi)
生成该错误是因为构建正在运行以下代码以检查是否安装了 python 依赖项:
#!/usr/bin/python3
import sys
import os
err = 0
try:
import gi
except ImportError:
print("Error: missing dependency python gobject introspection (python3-gi)")
err = 1
sys.exit(err)
我不知道如何解决这个问题,我怀疑 python3-gi 包已安装到系统 python3 位置,但默认指向 anaconda 安装,因此当介子构建脚本调用它时无法识别。
我不是一个有经验的 Linux 用户,也不是非常热衷于 python,所以我需要你的建议如何解决这个问题,以免弄乱 Anaconda 安装。目标是成功完成构建并保持当前配置。
编辑:
PATH 变量如下(我怀疑目录的顺序很重要):
echo $PATH
/home/sebastian/anaconda3/bin:/home/sebastian/perl5/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
编辑2:
正在搜索python3的介子构建部分如下:
python3 = find_program('python3')
r = run_command([python3, 'po/test-deps'])
if r.returncode() != 0
error(r.stdout())
endif
解决方案
我更改了meson.build
文件,即脚本搜索 python3 的部分。
标准脚本正在运行find_program()
参考这里的函数
我已经更改了它,以便首先在默认系统位置查找 python3,然后按名称查找程序:
曾是:
python3 = find_program('python3')
更新后:
python3 = find_program('/usr/bin/python3','python3')
它解决了这个问题。
推荐阅读
- c - 我无法弄清楚这个while循环在C中
- node.js - 如何使用 nvm 卸载节点或如何卸载一个版本的 nodejs?
- c++ - getline 和 cin 的不同行为以及条件
- go - 当我将外部结构的实例传递给外部结构实现的接口切片时,无法访问嵌入式结构
- javascript - 用Javascript做游戏,有点像视觉小说
- android - 在 RecyclerView 内的 TextView 中添加选取框
- flutter - 错误状态:意外诊断:需要标识符。[严重] json_serializable:json_serializable 在 test/widget_test.dart
- html - 更改网址后jQuery触发点击
- java - Lateinit 变量未初始化错误但已初始化(android)
- uwp - 如何防止 XAML VisualStates 干扰 Windows UI 合成动画?