python-3.x pip install --target和--prefix的区别

fykwrbwg  于 2023-05-08  发布在  Python
关注(0)|答案(1)|浏览(283)

一个similar question被问到,但没有被接受的答案,它已经被问到8年前,Python现在是3.11而不是3.4。
关于pip documentation

--prefix <dir>
    Installation prefix where lib, bin and other top-level folders are placed
-t, --target <dir>
    Install packages into <dir>. By default this will not replace existing files/folders in <dir>.
    Use --upgrade to replace existing packages in <dir> with new versions.

**我试过什么?**当我使用pip install --target=$SOMEDIR时,我注意到bin/文件夹以及所有模块文件夹都直接放在$SOMEDIR中,而当使用--prefix时,模块文件夹放在$SOMEDIR/lib/python3.11/site-packages/中。为什么会这样呢?
**我期待什么?**我想从pypi安装一个包,并将其包含在$SOMEDIR中,而不会干扰全局python安装。
我的问题:pip install --prefix=$SOMEDIRpip install --target=$SOMEDIR甚至PYTHONUSERBASE=$SOMEDIR pip install --user之间有什么区别,各自的用例是什么?它们似乎都在替代目录中安装了某个包及其依赖项。

谢谢!

wfauudbj

wfauudbj1#

--target ${SOMEDIR}/target

  • 忽略已安装的依赖项并安装它们
  • PYTHONPATH需要设置为${SOMEDIR}/target

--prefix ${SOMEDIR}/prefix

  • 通知已安装的依赖项
  • PYTHONPATH需要设置为${SOMEDIR}/prefix/lib/python3.11/site-packages/

相关问题