我知道最明显的答案是使用virtualenv和virtualenvwrapper,但由于各种原因,我不能/不想这样做。

那么如何修改命令呢

pip install package_name

让PIP在默认的site-packages之外的地方安装这个包?


当前回答

Use:

pip install --install-option="--prefix=$PREFIX_PATH" package_name

您可能还想使用——ignore-installed强制使用这个新前缀重新安装所有依赖项。你可以多次使用——install-option来添加任何你可以在python setup.py install中使用的选项(——prefix可能是你想要的,但你可以使用更多的选项)。

其他回答

为了将库安装在我想要的位置,我导航到我想要的带有终端的目录的位置

pip install mylibraryName -t . 

我的逻辑是从这一页:https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/download

在@Ian Bicking的回答上再加一点:

如果想在远程服务器上的主目录(没有sudo用户权限)中安装一些Python包,使用——user选项指定安装目录也可以。

例如,

pip install --user python-memcached

该命令将包安装到PYTHONPATH中列出的目录之一。

新版本的pip(8或更高版本)可以直接使用——prefix选项:

pip install --prefix=$PREFIX_PATH package_name

其中$PREFIX_PATH是lib、bin和其他顶级文件夹所在的安装前缀。

System选项,将PIP package-bins安装到所有用户都可以访问的/usr/local/bin。没有这个选项的安装可能对所有用户都不起作用,因为东西会到用户特定的目录,如$HOME/。Local /bin,然后是用户特定的安装,必须对所有用户重复,如果不为用户设置,也可能有路径问题,那么垃圾箱将无法工作。所以如果你正在寻找所有的用户-你需要有sudo访问:

sudo su - 
python3 -m pip install --system <module>
logout
log back in 
which <module-bin> --> it should be installed on /usr/local/bin/

似乎没有人提到-t选项,但最简单的是:

pip install -t <direct directory> <package>