【问题标题】:Cannot Use Pip Within Venv不能在 Venv 中使用 Pip
【发布时间】:2021-01-14 11:43:53
【问题描述】:

我知道有很多类似的问题,但我已经解决了所有问题。

在 Ubuntu 18.04 上,我有 Python 2 和 Python 3.6。我使用下面的命令创建了一个 venv 并尝试使用 pip 安装一个包。但是,它会尝试安装在全局系统上而不是 venv 中。

python3 -m venv v1

当我运行“which python”时,它会正确选择 venv 中的 python。我检查了他的 v1/bin 文件夹并安装了 pip。 pip 脚本中的路径正确指向 venv 中的 python。

我尝试过重新安装 python3 和 venv,破坏和重新创建虚拟环境以及许多其他事情。想知道有没有一些合理的方法来理解和解决这个问题。

【问题讨论】:

  • 你能试试./venv/bin/python -m pip install吗?
  • 您是否尝试过明确选择 Python 安装(请参阅snarky.ca/why-you-should-use-python-m-pip)?
  • 激活 virtualenv 后which pip 的输出是什么?你可以尝试使用python -m pip install <package_name>
  • 谢谢各位,这为我指明了正确的方向。

标签: python ubuntu pip python-venv


【解决方案1】:

我的问题是我正在使用的已安装驱动器未安装为可执行文件。所以 pip 无法从挂载的 venv 中执行。

这已得到证实,因为我能够使用“python -m pip install numpy”进行 pip 安装,但是在导入库时,例如'import numpy',然后面临进一步的错误:

multiarray_umath.cpython-36m-x86_64-linux-gnu.so: 无法从共享对象映射段

根据下面的 github 问题导致权限问题。通过 dvdabelle 在 cmets 中修复该问题,然后修复相关问题和原始问题。

https://github.com/numpy/numpy/issues/15102

在他的情况下,他可以切换驱动器。我必须使用这个驱动器。所以解决方法是卸载我正在工作的 /data 磁盘并使用 exec 选项重新安装它!

sudo umount /数据

sudo mount -o exec /dev/sda4 /data

'which pip' 现在正确指向 venv 中的 pip

注意:要使其永久化,请按照https://download.tuxfamily.org/linuxvillage/Informatique/Fstab/fstab.html 将 exec 开关添加到 fstab 中的驱动器行(使 exec 成为选项中的最后一个参数,否则用户将覆盖它)例如

UUID=1332d6c6-da31-4b0a-ac48-a87a39af7fec /data auto rw,user,auto,exec 0 0

【讨论】:

    猜你喜欢
    • 2020-04-18
    • 2021-10-02
    • 2020-09-07
    • 2020-01-12
    • 2021-08-13
    • 2019-02-26
    • 2017-09-11
    • 2021-07-30
    • 2018-11-14
    相关资源
    最近更新 更多