我知道最明显的答案是使用virtualenv和virtualenvwrapper,但由于各种原因,我不能/不想这样做。
那么如何修改命令呢
pip install package_name
让PIP在默认的site-packages之外的地方安装这个包?
我知道最明显的答案是使用virtualenv和virtualenvwrapper,但由于各种原因,我不能/不想这样做。
那么如何修改命令呢
pip install package_name
让PIP在默认的site-packages之外的地方安装这个包?
当前回答
我建议按照文档创建~/.pip/pip.conf文件。注意在文档中缺少指定的头目录,这将导致以下错误:
error: install-base or install-platbase supplied, but installation scheme is incomplete
conf文件的完整工作内容是:
[install]
install-base=$HOME
install-purelib=python/lib
install-platlib=python/lib.$PLAT
install-scripts=python/scripts
install-headers=python/include
install-data=python/data
不幸的是,我可以安装,但当尝试卸载pip告诉我没有这样的软件包卸载过程....所以还是有问题,但是包会回到预定义的位置。
其他回答
Use:
pip install --install-option="--prefix=$PREFIX_PATH" package_name
您可能还想使用——ignore-installed强制使用这个新前缀重新安装所有依赖项。你可以多次使用——install-option来添加任何你可以在python setup.py install中使用的选项(——prefix可能是你想要的,但你可以使用更多的选项)。
安装Python包通常只包含一些纯Python文件。如果包包含数据、脚本和(或)可执行文件,则这些文件将安装在与纯Python文件不同的目录中。
假设你的包没有数据/脚本/可执行文件,并且你希望你的Python文件进入/ Python /packages/package_name(而不是像使用——prefix时那样在/ Python /packages下面几层的子目录),你可以使用one time命令:
pip install --install-option="--install-purelib=/python/packages" package_name
如果你想要所有(或大部分)你的包都在那里,你可以编辑你的~/.pip/pip.conf包含:
[install]
install-option=--install-purelib=/python/packages
这样,您就不会忘记必须一次又一次地指定它。
包中包含的任何可执行文件/数据/脚本仍然会放在默认位置,除非你指定了额外的安装选项(——prefix/——install-data/——install-scripts等,详情请参阅自定义安装选项)。
pip3 install "package_name" -t "target_dir"
来源:https://pip.pypa.io/en/stable/reference/pip_install/
-t switch = target
目标开关是你要找的东西:
pip install --target=d:\somewhere\other\than\the\default package_name
但是你仍然需要在PYTHONPATH中添加d:\somewhere\而不是\default \,以便从该位置实际使用它们。
-t,——target <dir> 将包安装到<dir>。默认情况下,这将不会替换<dir>中的现有文件/文件夹。 使用——upgrade将<dir>中的现有包替换为新版本。
如果目标交换机不可用,则升级pip:
Linux或OS X操作系统:
pip install -U pip
在Windows上(这可以解决一个问题):
python -m pip install -U pip
不幸的是,如果您在python中使用brew, pip/pip3附带的选项非常有限。你没有上面提到的——install-option,——target,——user选项。
注意pip install——user 对于已酿造的Python,禁用了正常的pip install——user。这是因为distutils中的一个错误,因为Homebrew编写了一个distutils.cfg来设置包前缀。 一个可能的解决方案(将可执行脚本放在~/Library/Python/./bin中)是: Python -m PIP install——user——install-option="——prefix=" <package-name>
您可能会发现这一行非常麻烦。我建议使用pyenv进行管理。 如果你正在使用
编译升级python python3
讽刺的是,你实际上降低了pip的功能。
(我发布这个答案,只是因为我的mac osx中的pip没有目标选项,我花了几个小时来修复它)