我正在运行meson build
,这需要安装许多python3库。在我的系统上,默认的python3安装当前指向
$ which python3
/home/myuser/anaconda3/bin/python3
该版本需要安装python3-gi软件包,该软件包已使用突触软件包管理器安装
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
答案 0 :(得分:0)
您是否可以使用命令update-alternatives
(https://manpages.debian.org/jessie/dpkg/update-alternatives.8.en.html)。
也许这会有所帮助: How to update-alternatives to Python 3 without breaking apt?
编辑:
我是更好的解决方案。使用virtualenv
(https://pypi.org/project/virtualenv/)。
此命令将从路径创建python版本的环境。
virtualenv --python=/path/to/python <name of project>
cd <name of project>
source bin/activate
完成此步骤后,您将进入虚拟环境。使用pip
安装要求。
答案 1 :(得分:0)
我更改了meson.build
文件,该文件是脚本搜索python3的部分。
标准脚本正在运行find_program()
函数,其引用为here
我已对其进行了更改,以便首先在默认系统位置查找python3,然后仅按名称查找程序:
原是:
python3 = find_program('python3')
更新后:
python3 = find_program('/usr/bin/python3','python3')
它解决了这个问题。