如何临时更改默认的python3路径

时间:2019-01-04 21:59:44

标签: python-3.x meson-build

我正在运行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

2 个答案:

答案 0 :(得分:0)

您是否可以使用命令update-alternativeshttps://manpages.debian.org/jessie/dpkg/update-alternatives.8.en.html)。

也许这会有所帮助: How to update-alternatives to Python 3 without breaking apt?

编辑:

我是更好的解决方案。使用virtualenvhttps://pypi.org/project/virtualenv/)。 此命令将从路径创建python版本的环境。

  1. virtualenv --python=/path/to/python <name of project>
  2. cd <name of project>
  3. source bin/activate

完成此步骤后,您将进入虚拟环境。使用pip安装要求。

答案 1 :(得分:0)

我更改了meson.build文件,该文件是脚本搜索python3的部分。

标准脚本正在运行find_program()函数,其引用为here

我已对其进行了更改,以便首先在默认系统位置查找python3,然后仅按名称查找程序:

原是:

python3 = find_program('python3')

更新后:

python3 = find_program('/usr/bin/python3','python3')

它解决了这个问题。