不能在 Venv 中使用 pip
Cannot Use Pip Within Venv
我知道有很多类似的问题,但我已经全部解决了,但无济于事。
在 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,破坏并重新创建虚拟环境和许多其他东西。想知道有没有一些合理的方法来理解和解决这个问题。
我遇到的问题是我正在使用的已安装驱动器未安装为可执行文件。所以 pip 无法从挂载的 venv 中执行。
这已得到确认,因为我能够使用 'python -m pip install numpy' 进行 pip 安装,但是在导入库时,例如'import numpy',然后面临进一步的错误:
multiarray_umath.cpython-36m-x86_64-linux-gnu.so: 无法从共享对象映射段
根据下面的 github 问题,这又导致了权限问题。 dvdabelle 在评论中修复了该问题,然后修复了相关问题和原始问题。
https://github.com/numpy/numpy/issues/15102
在他的情况下,他可以切换驱动器。我必须使用这个驱动器。所以解决方法是卸载我正在工作的 /data 磁盘,然后使用 exec 选项重新挂载它!
须藤卸载/数据
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
我知道有很多类似的问题,但我已经全部解决了,但无济于事。
在 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,破坏并重新创建虚拟环境和许多其他东西。想知道有没有一些合理的方法来理解和解决这个问题。
我遇到的问题是我正在使用的已安装驱动器未安装为可执行文件。所以 pip 无法从挂载的 venv 中执行。
这已得到确认,因为我能够使用 'python -m pip install numpy' 进行 pip 安装,但是在导入库时,例如'import numpy',然后面临进一步的错误:
multiarray_umath.cpython-36m-x86_64-linux-gnu.so: 无法从共享对象映射段
根据下面的 github 问题,这又导致了权限问题。 dvdabelle 在评论中修复了该问题,然后修复了相关问题和原始问题。
https://github.com/numpy/numpy/issues/15102
在他的情况下,他可以切换驱动器。我必须使用这个驱动器。所以解决方法是卸载我正在工作的 /data 磁盘,然后使用 exec 选项重新挂载它!
须藤卸载/数据
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